本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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",
"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
。
IAM 用於呼叫 DynamoDB 的政策
下列範例範本顯示 如何根據您狀態機器定義中的資源 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 IAM DynamoDB 開發人員指南》中的使用 DynamoDB 的政策。 DynamoDB 此外,如需適用於 DynamoDB 的 PartiQL IAM政策的相關資訊,請參閱《Amazon IAM DynamoDB 開發人員指南》中的適用於 DynamoDB 的 PartiQL 政策。 DynamoDB