使用 Step Functions 执行 CRUD DynamoDB 操作 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Step Functions 执行 CRUD DynamoDB 操作

您可以将 Step Functions 与 DynamoDB 集成,以便CRUD对 DynamoDB 表执行操作。本页列出了支持的 Dynamo APIs DB,并提供了从 DynamoDB 检索项目的Task示例状态。

要了解如何在 Step Functions 中与 Amazon 服务集成,请参阅集成 服务在 Step Functions API 中向服务传递参数

经优化的 DynamoDB 集成的主要功能

下面是从 DynamoDB 检索消息的 Task 状态。

"Read Next Message from DynamoDB": { "Type": "Task", "Resource": "arn:aws:states:::dynamodb:getItem", "Parameters": { "TableName": "TransferDataRecords-DDBTable-3I41R5L5EAGT", "Key": { "MessageId": {"S.$": "$.List[0]"} } }, "ResultPath": "$.DynamoDB", "Next": "Send Message to SQS" },

要在可正常使用的示例中查看此状态,请参阅使用传输数据记录 Lambda, DynamoDB,以及 Amazon SQS示例项目。

注意

在 Step Functions 中,任务的最大输入或结果数据大小有一个配额。这会限制您在向其他服务发送数据或从其他服务接收数据时,以 -8 编码字符串形式存储 256 KiB 的数据。UTF请参阅 与状态机执行相关的配额

支持的 DynamoDB APIs

中的参数 Step Functions 表示为 PascalCase

即使原生服务API已在camelCase(例如API操作)中startSyncExecution,您也可以在中指定参数 PascalCase,例如:StateMachineArn

IAM调用 DynamoDB 的策略

以下示例模板显示了如何根据状态机定义中的资源 Amazon Step Functions 生成IAM策略。有关更多信息,请参阅Step Functions 如何为集成服务生成 IAM 策略探索 Step Functions 中的服务集成模式

静态资源

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem" ], "Resource": [ "arn:aws:dynamodb:[[region]]:[[accountId]]:table/[[tableName]]" ] } ] }

动态资源

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem" ], "Resource": "*" } ] }

有关所有 DynamoDB 操作的IAM策略的更多信息,请参阅亚马逊 API DynamoDB 开发者指南中的使用 DynamoDB 的IAM策略此外,有关适用于 DynamoDB 的 PartiQL IAM 策略的信息,请参阅亚马逊 DynamoDB 开发者指南中的适用于 Dyn amoDB 的 Parti IAM QL 策略。