使用 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", "Parameters": { "TableName": "TransferDataRecords-DDBTable-3I41R5L5EAGT", "Key": { "MessageId": {"S.$": "$.List[0]"} } }, "ResultPath": "$.DynamoDB", "Next": "Send Message to SQS" },

若要查看運作範例中的這個狀態,請參閱 使用 Lambda、 DynamoDB和 傳輸資料記錄 Amazon SQS 範例專案。

注意

Step Functions 中任務的最大輸入或結果資料大小有配額。當您向另一個 服務傳送或接收資料時,這會限制您將 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]]:[[accountId]]: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 政策