DynamoDBv2
DynamoDBv2 (dynamoDBv2
) アクションは、MQTT メッセージの全部または一部を Amazon DynamoDB テーブルに書き込みます。ペイロードの各属性は、DynamoDB データベースの個別の列に書き込まれます。
要件
このルールアクションには、以下の要件があります。
-
dynamodb:PutItem
オペレーションを実行するために AWS IoT が引き受けることができる IAM ロール。詳細については、「AWS IoT ルールに必要なアクセスを付与する」を参照してください。AWS IoT コンソールで、AWS IoT がこのルールアクションを実行できるようにするロールを選択または作成できます。
-
MQTT メッセージのペイロードは、定義されている場合、テーブルのプライマリパーティションキーおよびテーブルのプライマリソートキーに一致するルートレベルキーが含まれる必要があります。
-
DynamoDB 内の保管中のデータを暗号化するためにカスタマーマネージド AWS KMS key (KMS キー) を使用する場合は、サービスが発信者に代わって KMS キーを使用する許可を持っている必要があります。詳細については、[Amazon DynamoDB Getting Started Guide](Amazon DynamoDB 開始方法ガイド) の [Customer Managed KMS key](カスタマー管理の CMK) を参照してください。
パラメータ
このアクションで AWS IoT ルールを作成するときは、次の情報を指定する必要があります。
putItem
-
メッセージデータを書き込む DynamoDB テーブルを指定するオブジェクト。このオブジェクトには、次の情報が含まれている必要があります。
tableName
-
DynamoDB テーブルの名前。
置換テンプレートのサポート: API と AWS CLI のみ
roleARN
-
DynamoDB テーブルへのアクセスを許可する IAM ロール。詳細については、「要件」を参照してください。
置換テンプレートをサポート: いいえ
DynamoDB テーブルに書き込まれるデータは、ルールの SQL ステートメントの結果です。
例
次の JSON 例では、AWS IoT ルールで DynamoDBv2 アクションを定義します。
{ "topicRulePayload": { "sql": "SELECT * AS message FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "dynamoDBv2": { "putItem": { "tableName": "my_ddb_table" }, "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDBv2", } } ] } }
次の JSON 例では、AWS IoT ルール内の置換テンプレートを使用して DynamoDB アクションを定義します。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2015-10-08", "actions": [ { "dynamoDBv2": { "putItem": { "tableName": "${topic()}" }, "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDBv2" } } ] } }
以下の資料も参照してください。
-
Amazon DynamoDB デベロッパーガイドの Amazon DynamoDB とは?
-
Amazon DynamoDB デベロッパーガイドの DynamoDB の開始方法