Amazon web services AWS状态机-更新DynamoDB表正在用“$”替换ID。id";
我有一个步骤要更新DynamoDB表上的对象 除了创建一个ID值为“$.ID”的新对象,而不是更新我传入的ID之外,其他一切都正常工作 这是我第一次尝试使用状态机,我做错了什么Amazon web services AWS状态机-更新DynamoDB表正在用“$”替换ID。id";,amazon-web-services,amazon-dynamodb,aws-step-functions,Amazon Web Services,Amazon Dynamodb,Aws Step Functions,我有一个步骤要更新DynamoDB表上的对象 除了创建一个ID值为“$.ID”的新对象,而不是更新我传入的ID之外,其他一切都正常工作 这是我第一次尝试使用状态机,我做错了什么 "update-table-processing": { "Type": "Task", "Resource": "arn:aws:states:::dynamodb:updateItem"
"update-table-processing": {
"Type": "Task",
"Resource": "arn:aws:states:::dynamodb:updateItem",
"ResultPath": "$.updateResult",
"Parameters": {
"TableName": "Projects",
"Key": {
"id": {
"S": "$.id"
}
},
"UpdateExpression": "SET step = :updateRef",
"ExpressionAttributeValues": {
":updateRef": {
"S": "processing"
}
},
"ReturnValues": "ALL_NEW"
},
"Next": "create-project"
},
我是否需要告诉DynamoDB对“$.id”求值,而不是将其视为“S”,或者这是因为我没有正确映射输入,“$.id”值为空
我的输入看起来像:
{
"id": "f8185735-c90d-4d4e-8689-cec68a48b1bc"
}
为了从输入中指定数据,必须使用键值对,键值以“.”结尾。因此,要解决此问题,您需要将其更改为:
"Key": {
"id": {
"S.$": "$.id"
}
},
使用上述方法,它应该正确解析为输入值,而不是字符串值“$.id”
引用-为了从输入中指定数据,必须使用键值对,键值以“$”结尾。因此,要解决此问题,您需要将其更改为:
"Key": {
"id": {
"S.$": "$.id"
}
},
使用上述方法,它应该正确解析为输入值,而不是字符串值“$.id”
参考-