【问题标题】:Not able to insert DynamoDB Item properly from AWS StepFunctions无法从 AWS StepFunctions 正确插入 DynamoDB 项目
【发布时间】:2020-08-15 01:38:18
【问题描述】:

我在 AWS StepFunctions 中编写了一个状态来将一个项目插入到 DynamoDB 表中,如下所示。 Lambda 状态的输出进入 DynamoDB 状态下方的输入。

"States":{
   "Update the order table":{
      "Type":"Task",
      "Resource":"arn:aws:states:::dynamodb:putItem",
      "Parameters":{
         "TableName":"OrderTable",
         "Item":{
            "OrderId":{
               "S":"$.OrderId"
            },
            "ItemName":{
               "S":"$.ItemName"
            },
            "Price":{
               "S":"$.Price"
            },
            "CC":{
               "S":"$.CC"
            }
         }
      },
      "End":true
   }
}

文字字符串“$.OrderId”、“$.ItemName”和其他字符串被插入到 DynamoDB 表中,而不是来自 Lambda 函数的值。

因此,我删除了 "$.OrderId" 周围的双引号,然后出现以下错误。

DynamoDB 状态的输入是正确的,但我仍然无法将 Lambda 的输出插入到 DynamoDB 表中。

任何帮助将不胜感激。

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb aws-step-functions


    【解决方案1】:

    这就是您的任务定义的样子。注意每个项目属性的数据类型后面有$ 符号。

    "States":{
       "Update the order table":{
          "Type":"Task",
          "Resource":"arn:aws:states:::dynamodb:putItem",
          "Parameters":{
             "TableName":"OrderTable",
             "Item":{
                "OrderId":{
                   "S.$":"$.OrderId"
                },
                "ItemName":{
                   "S.$":"$.ItemName"
                },
                "Price":{
                   "S.$":"$.Price"
                },
                "CC":{
                   "S.$":"$.CC"
                }
             }
          },
          "End":true
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      • 1970-01-01
      相关资源
      最近更新 更多