【问题标题】:AWS State Machine error when testing locally: ''SCHEMA_VALIDATION_FAILED: Value is not a valid resource ARN本地测试时出现 AWS 状态机错误:''SCHEMA_VALIDATION_FAILED:值不是有效的资源 ARN
【发布时间】: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


    【解决方案1】:

    显然状态机代码不接受实际的 DB Arn。应该是这样的。

    arn:aws:states:::dynamodb:getItem
    

    一些例子here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多