翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
DynamoDB
DynamoDB (dynamoDB
) アクションは、MQTT メッセージの全部または一部を Amazon DynamoDB テーブルに書き込みます。
DynamoDB アクションでルールを作成してテストする方法を示すチュートリアルに従うことができます。詳細については、「チュートリアル: デバイスデータの DynamoDB テーブルへの保存」を参照してください。
注記
このルールは、JSON 以外のデータをバイナリデータとして DynamoDB に書き込みます。DynamoDB コンソールでは、base64 でエンコードされたテキストとしてデータが表示されます。
要件
このルールアクションには、以下の要件があります。
-
オペレーションを実行するために が引き受け AWS IoT ることができる IAM ロール
dynamodb:PutItem
。詳細については、「AWS IoT ルールに必要なアクセス許可を付与する」を参照してください。AWS IoT コンソールで、 がこのルールアクションを実行 AWS IoT できるようにするロールを選択または作成できます。
-
カスタマーマネージド AWS KMS key (KMS キー) を使用して DynamoDB に保管中のデータを暗号化する場合、サービスには発信者に代わって KMS キーを使用するためのアクセス許可が必要です。詳細については、[Amazon DynamoDB Getting Started Guide](Amazon DynamoDB 開始方法ガイド) の [Customer Managed KMS key](カスタマー管理の CMK) を参照してください。
パラメータ
このアクションで AWS IoT ルールを作成するときは、次の情報を指定する必要があります。
tableName
-
DynamoDB テーブルの名前。
置換テンプレートをサポート: API および AWS CLI のみ
hashKeyField
-
ハッシュキー (パーティションキーとも呼ばれます) の名前。
置換テンプレートをサポート: API および AWS CLI のみ
hashKeyType
-
(オプション) ハッシュキー (パーティションキーとも呼ばれます) のデータ型。有効な値:
STRING
、NUMBER
。置換テンプレートをサポート: API および AWS CLI のみ
hashKeyValue
-
ハッシュキーの値。
${topic()}
や${timestamp()}
などの置換テンプレートの使用を検討してください。置換テンプレートをサポート: はい
rangeKeyField
-
(オプション) 範囲キー (ソートキーとも呼ばれます) の名前。
置換テンプレートをサポート: API および AWS CLI のみ
rangeKeyType
-
(オプション) 範囲キー (ソートキーとも呼ばれます) のデータ型。有効な値:
STRING
、NUMBER
。置換テンプレートをサポート: API および AWS CLI のみ
rangeKeyValue
-
(オプション) 範囲キーの値。
${topic()}
や${timestamp()}
などの置換テンプレートの使用を検討してください。置換テンプレートをサポート: はい
payloadField
-
(オプション) ペイロードが書き込まれる列の名前。この値を省略した場合、ペイロードは
payload
という名前の列に書き込まれます。置換テンプレートをサポート: はい
operation
-
(オプション) 実行する操作の種類。有効な値:
INSERT
、UPDATE
、DELETE
。置換テンプレートをサポート: はい
roleARN
-
DynamoDB テーブルへのアクセスを許可する IAM ロール。詳細については、「要件」を参照してください。
置換テンプレートをサポート: いいえ
DynamoDB テーブルに書き込まれるデータは、ルールの SQL ステートメントの結果です。
例
次の JSON 例では、 AWS IoT ルールで DynamoDB アクションを定義します。
{ "topicRulePayload": { "sql": "SELECT * AS message FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "dynamoDB": { "tableName": "my_ddb_table", "hashKeyField": "key", "hashKeyValue": "${topic()}", "rangeKeyField": "timestamp", "rangeKeyValue": "${timestamp()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB" } } ] } }
以下も参照してください。
-
Amazon DynamoDB デベロッパーガイドのAmazon DynamoDB とは?
-
Amazon DynamoDB デベロッパーガイドの DynamoDB の開始方法