无法从 AWS StepFunctions 正确插入 DynamoDB 项目

Not able to insert DynamoDB Item properly from AWS StepFunctions

我在 AWS StepFunctions 中编写了一个状态,以将一个项目插入 DynamoDB Table,如下所示。 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 table 而不是来自 Lambda 函数的值。

所以,我删除了“$.OrderId”周围的双引号,我得到了以下错误。

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

如有任何帮助,我们将不胜感激。

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

"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
   }
}