

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Step Functions を使用して DynamoDB CRUD オペレーションを実行する
<a name="connect-ddb"></a>

Step Functions を DynamoDB と統合すると、DynamoDB テーブルで CRUD オペレーションを実行できます。このページでは、サポートされている DynamoDB API を一覧表示し、DynamoDB から項目を取得するための `Task` 状態の例を示します。

Step Functions での AWSサービスとの統合については、[ サービスとの統合](integrate-services.md)「」および「」を参照してください[Step Functions でサービス API にパラメータを渡す](connect-parameters.md)。

**最適化された DynamoDB 統合の主な機能**  
[レスポンスのリクエスト](connect-to-resource.md#connect-default) 統合パターンに固有の最適化はありません。
[タスクトークンのコールバックまで待機する](connect-to-resource.md#connect-wait-token) 統合パターンはサポートされていません。
最適化された統合では、[https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)、[https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)、[https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)、および [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html) API アクションのみを使用できます。などの他の API アクション[https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)は、DynamoDBAWS 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 を使用してデータレコードを転送する](sample-project-transfer-data-sqs.md) スターターテンプレートを参照してください。

**例外プレフィックスの違い**  
標準の DynamoDB 接続でエラーが発生した場合、例外プレフィックスは `DynamoDb` (大文字と小文字の混在) になります。  
最適化統合の場合、例外プレフィックスは `DynamoDB` (すべて大文字の `DB`) になります。

**入力または結果データのクォータ**  
サービス間でデータを送受信する際、タスクの入力または結果の最大サイズは、UTF-8 でエンコードされた文字列で 256 KiB です。「[ステートマシンの実行に関連するクォータ](service-quotas.md#service-limits-state-machine-executions)」を参照してください。

## 最適化された DynamoDB API
<a name="connect-dynamodb-api"></a>
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)

**Step Functions のパラメータは PascalCase で表されます。**  
ネイティブサービス API が、API アクション `startSyncExecution` などの camelCase である場合でも、`StateMachineArn` などの PascalCase でパラメータを指定します。

## DynamoDB を呼び出すための IAM ポリシー
<a name="dynamo-iam"></a>

次のサンプルテンプレートは、 がステートマシン定義のリソースに基づいて IAM ポリシーAWS Step Functionsを生成する方法を示しています。詳細については、「[Step Functions が統合サービスの IAM ポリシーを生成する方法](service-integration-iam-templates.md)」および「[Step Functions でサービス統合パターンを検出する](connect-to-resource.md)」を参照してください。

静的リソース**

****  

```
{
    "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 ポリシー](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/using-identity-based-policies.html)」を参照してください。さらに、DynamoDB 用 PartiQL の IAM ポリシーについては、「*Amazon DynamoDB DynamoDB デベロッパーガイド*」の「[DynamoDB 用 PartiQL の IAM ポリシー](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-iam.html)」を参照してください。