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

使用 Step Functions 执行 DynamoDB CRUD 操作

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

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

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

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

"Read next Message from DynamoDB": { "Type": "Task", "Resource": "arn:aws:states:::dynamodb:getItem", "Arguments": { "TableName": "DYNAMO_DB_TABLE_NAME", "Key": { "MessageId": {"S": "{% $List[0] %}"} } }

要在工作示例中查看此状态,请参阅使用 Lambda、DynamoDB 和 Amazon SQS 传输数据记录初学者模板。

异常前缀差异

当标准 DynamoDB 连接遇到错误时,异常前缀将是 DynamoDb(大小写混用)。

对于经优化的集成,异常前缀将是 DynamoDB(大写 DB)。

输入或结果数据的配额

在服务之间发送或接收数据时,任务的最大输入或结果为 256 KiB,且需以 UTF-8 编码字符串形式呈现。请参阅与状态机执行相关的配额

经优化的 DynamoDB API

Step Functions 中的参数以 PascalCase 表示

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

用于调用 DynamoDB 的 IAM 策略

以下示例模板展示了 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:us-east-1:123456789012:table/myTableName" ] } ] }

动态资源

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

有关所有 DynamoDB API 操作的 IAM 策略的更多信息,请参阅《Amazon DynamoDB 开发人员指南》中的 DynamoDB 的 IAM 策略。此外,有关 PartiQL for DynamoDB 的 IAM 策略的信息,请参阅《Amazon DynamoDB 开发人员指南》中的 PartiQL for DynamoDB 的 IAM 策略