DynamoDB - AWS IoT Core

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

DynamoDB

DynamoDB (dynamoDB) アクションは、MQTTメッセージの全部または一部を Amazon DynamoDB テーブルに書き込みます。

DynamoDB アクションでルールを作成してテストする方法を示すチュートリアルに従うことができます。詳細については、「チュートリアル: デバイスデータの DynamoDB テーブルへの保存」を参照してください。

注記

このルールは、非JSONデータをバイナリデータとして DynamoDB に書き込みます。DynamoDB コンソールでは、base64 でエンコードされたテキストとしてデータが表示されます。

要件

このルールアクションには、以下の要件があります。

  • dynamodb:PutItem オペレーションを実行するために が引き受け AWS IoT ることができる IAMロール。詳細については、「AWS IoT ルールに必要なアクセス許可の付与」を参照してください。

    AWS IoT コンソールでは、 がこのルールアクションを実行することを許可 AWS IoT するロールを選択または作成できます。

  • カスタマーマネージド AWS KMS key (KMS キー) を使用して DynamoDB に保管中のデータを暗号化する場合、サービスには発信者に代わってKMSキーを使用するアクセス許可が必要です。詳細については、「Amazon DynamoDB 入門ガイド」の「カスタマーマネージドKMSキー」を参照してください。 DynamoDB

パラメータ

このアクションで AWS IoT ルールを作成するときは、次の情報を指定する必要があります。

tableName

DynamoDB テーブルの名前。

置換テンプレートをサポート: APIおよび AWS CLI のみ

hashKeyField

ハッシュキー (パーティションキーとも呼ばれます) の名前。

置換テンプレートをサポート: APIおよび AWS CLI のみ

hashKeyType

(オプション) ハッシュキー (パーティションキーとも呼ばれます) のデータ型。有効な値: STRINGNUMBER

置換テンプレートをサポート: APIおよび AWS CLI のみ

hashKeyValue

ハッシュキーの値。${topic()}${timestamp()} などの置換テンプレートの使用を検討してください。

置換テンプレートをサポート: はい

rangeKeyField

(オプション) 範囲キー (ソートキーとも呼ばれます) の名前。

置換テンプレートをサポート: APIおよび AWS CLI のみ

rangeKeyType

(オプション) 範囲キー (ソートキーとも呼ばれます) のデータ型。有効な値: STRINGNUMBER

置換テンプレートをサポート: APIおよび AWS CLI のみ

rangeKeyValue

(オプション) 範囲キーの値。${topic()}${timestamp()} などの置換テンプレートの使用を検討してください。

置換テンプレートをサポート: はい

payloadField

(オプション) ペイロードが書き込まれる列の名前。この値を省略した場合、ペイロードは payload という名前の列に書き込まれます。

置換テンプレートをサポート: はい

operation

(オプション) 実行する操作の種類。有効な値: INSERTUPDATEDELETE

置換テンプレートをサポート: はい

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" } } ] } }

関連情報