本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Step Functions 執行 DynamoDB CRUD 操作
您可以將 Step Functions 與 DynamoDB 整合,以在 DynamoDB 資料表上執行 CRUD 操作。此頁面列出支援的 DynamoDB APIs並提供從 DynamoDB 擷取項目的範例Task
狀態。
若要了解如何在 Step Functions 中整合 AWS 服務,請參閱 整合 服務和 在 Step Functions 中將參數傳遞至服務 API。
最佳化 DynamoDB 整合的主要功能
-
請求回應 整合模式沒有特定的最佳化。
-
使用任務字符等待回呼 不支援 整合模式。
-
只有
GetItem
、UpdateItem
、PutItem
和DeleteItem
API 動作可透過最佳化整合來使用。其他 API 動作,例如CreateTable
可使用 DynamoDB AWS SDK 整合。
以下是從 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 政策。