如何解决如何使用文件中定义的状态机在本地执行 AWS Step Functions?
我已按照 AWS 文档中的步骤在本地设置和运行 AWS Step Functions:https://docs.aws.amazon.com/step-functions/latest/dg/sfn-local-lambda.html。
一切正常,但在第 5 步,它说您必须创建一个状态机,当定义包含大量任务时,使用命令行执行此操作可能会很痛苦。
有没有办法开始执行本地 .asl 文件中定义的状态机?
这是我在本地定义的状态机示例(来自模板):
{
"Comment": "A state machine that does mock stock Trading.","StartAt": "Check Stock Value","States": {
"Check Stock Value": {
"Type": "Task","Resource": "${StockCheckerFunctionArn}","Retry": [
{
"ErrorEquals": [
"States.TaskFailed"
],"IntervalSeconds": 15,"MaxAttempts": 5,"BackoffRate": 1.5
}
],"Next": "Buy or Sell?"
},"Buy or Sell?": {
"Type": "Choice","Choices": [
{
"Variable": "$.stock_price","NumericLessthanEquals": 50,"Next": "Buy Stock"
}
],"Default": "Sell Stock"
},"Sell Stock": {
"Type": "Task","Resource": "${StockSellerFunctionArn}","IntervalSeconds": 2,"MaxAttempts": 3,"BackoffRate": 1
}
],"Next": "Record Transaction"
},"Buy Stock": {
"Type": "Task","Resource": "${StockBuyerFunctionArn}","Record Transaction": {
"Type": "Task","Resource": "${DDBPutItem}","Parameters": {
"TableName": "${DDBTable}","Item": {
"Id": {
"S.$": "$.id"
},"Type": {
"S.$": "$.type"
},"Price": {
"N.$": "$.price"
},"Quantity": {
"N.$": "$.qty"
},"Timestamp": {
"S.$": "$.timestamp"
}
}
},"IntervalSeconds": 20,"BackoffRate": 10
}
],"End": true
}
}
}
解决方法
您可以使用 cat
将文件读入字符串。
aws stepfunctions --endpoint http://localhost:8083 create-state-machine --definition "$(cat local.asl.json)" --name "HelloWorld" --role-arn "arn:aws:iam::012345678901:role/DummyRole"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。