【发布时间】:2019-07-04 05:35:30
【问题描述】:
我正在尝试使用 SAM 和适用于 AWS 的步进函数 Docker 在本地测试我的步进机器,并在按照这些 instructions 加载我的步骤时遇到错误。
这是我正在加载的内容:
aws stepfunctions --endpoint http://localhost:8083 create-state-machine --definition "{\
\"Comment\": \"Fetch from DB and pass to Lambda\",\
\"StartAt\": \"GetWorkflowFromDb\",\
\"States\": {\
\"GetWorkflowFromDb\": {\
\"Type\": \"Task\",\
\"Resource\": \"arn:aws:dynamodb:us-east-1:11111111111:table/webhookDb\",\
\"Parameters\": {\
\"TableName\": \"webhookDb\",\
\"Key\": null,\
\"webhookId\": {\
\"S\": \"$input.params('webhookId')\"\
}\
},\
\"ResultPath\": \"$.DynamoDB\",\
\"Next\": \"HandleWorkflow\"\
}, \
\"HandleWorkflow\": {\
\"Type\": \"Task\",\
\"Resource\": \"arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:WebhookHandler\",\
\"End\": true\
}\
}\
}" --name "HelloWorld" --role-arn "arn:aws:iam::012345678901:role/DummyRole"
导致此错误的原因:
CreateStateMachine <= Invalid State Machine Definition: ''SCHEMA_VALIDATION_FAILED: Value is not a valid resource ARN at /States/GetWorkflowFromDb/Resource''
我已从我的 dynamoDB 页面复制 ARN。如果我将我的 Dynamo ARN 从 arn:aws:dynamodb:us-east-1:11111111111:table/webhookDb 更改为 arn:aws:dynamodb:us-east-1:11111111111:table:webhookDb,则该过程会执行,但稍后会失败,说提供的 ARN 无效。我尝试转义最后一个斜杠(/)但没有成功。
有人可以帮忙解释一下这个问题吗?
【问题讨论】:
标签: amazon-web-services aws-step-functions aws-sam-cli