使用 Step Functions 執行 DynamoDB CRUD 操作 - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Step Functions 執行 DynamoDB CRUD 操作

您可以將 Step Functions 與 DynamoDB 整合,以在 DynamoDB 資料表上執行 CRUD 操作。此頁面列出支援的 DynamoDB APIs並提供從 DynamoDB 擷取項目的範例Task狀態。

若要了解如何在 Step Functions 中整合 AWS 服務,請參閱 整合 服務在 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 APIs

中的參數Step Functions以 PascalCase 表示

即使原生服務 API 位於 camelCase 中,例如 API 動作 startSyncExecution,您可以在 PascalCase 中指定參數,例如:StateMachineArn

呼叫 DynamoDB 的 IAM 政策

下列範例範本顯示 如何根據狀態機器定義中的資源 AWS 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:account-id:table/tableName" ] } ] }

動態資源

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

如需所有 DynamoDB API 動作 IAM 政策的詳細資訊,請參閱《Amazon DynamoDB 開發人員指南》中的搭配 DynamoDB 的 IAM 政策 DynamoDB 此外,如需適用於 DynamoDB 的 PartiQL IAM 政策的相關資訊,請參閱《Amazon DynamoDB 開發人員指南》中的適用於 DynamoDB 的 PartiQL 的 IAM 政策