如何在Step Functions工作流中获取DynamoDB getItem的标准JSON结果
在Step Functions中获取DynamoDB getItem的标准JSON结果
方法1:使用AWS SDK集成的Document Client模式
你之前尝试的documentClient写法有误,正确的方式是用标准AWS SDK服务集成ARN,再在参数中启用Document Client格式:
{ "Type": "Task", "Resource": "arn:aws:states:::aws-sdk:dynamodb:getItem", "Parameters": { "TableName": "你的表名", "Key": { "entity_id": { "S": "d0e96ad0-4f83-4aa7-bcaf-2cf02c6216cb" } }, "$AWS_STEP_FUNCTIONS_DOCUMENT_CLIENT": true }, "ResultPath": "$.result" }
添加"$AWS_STEP_FUNCTIONS_DOCUMENT_CLIENT": true后,Step Functions会自动把DynamoDB原生格式转为标准JSON,返回结果就是你需要的:
{ "entity_id": "d0e96ad0-4f83-4aa7-bcaf-2cf02c6216cb" }
方法2:使用ResultSelector手动映射(适合少量字段)
如果不想启用Document Client,也可以通过ResultSelector直接提取字段值:
{ "Type": "Task", "Resource": "arn:aws:states:::dynamodb:getItem", "Parameters": { "TableName": "你的表名", "Key": { "entity_id": { "S": "d0e96ad0-4f83-4aa7-bcaf-2cf02c6216cb" } } }, "ResultSelector": { "entity_id": "$.Item.entity_id.S" }, "ResultPath": "$.result" }
这种方式需要逐个字段映射,字段多的时候效率低,不如Document Client模式便捷。
注意事项
- 确保Step Functions执行角色拥有DynamoDB getItem的权限
$AWS_STEP_FUNCTIONS_DOCUMENT_CLIENT参数仅适用于ARN以arn:aws:states:::aws-sdk:开头的AWS SDK集成Task
内容的提问来源于stack exchange,提问作者accexs
相关产品推荐
相关产品推荐

