本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
DynamoDB
DynamoDB (dynamoDB
) 動作會將 MQTT 訊息的全部或部分寫入 Amazon DynamoDB 表格。
您可依循對您展示如何使用 DynamoDB 動作 來建立及測試規則的教學課程。如需詳細資訊,請參閱教學課程:將裝置資料儲存在 DynamoDB 表格中。
注意
此規則會以二進位資料形式將非 JSON 資料寫入 DynamoDB 中。DynamoDB 主控台會以 Base64 編碼文字來顯示資料。
要求
此規則動作具有下列需求:
-
AWS IoT 可以擔任以執行
dynamodb:PutItem
操作的 IAM 角色。如需詳細資訊,請參閱授予 AWS IoT 規則所需的存取權。在 AWS IoT 主控台中,您可以選擇或建立角色, AWS IoT 以允許 執行此規則動作。
-
如果您使用客戶受管 AWS KMS key (KMS 金鑰) 來加密 DynamoDB 中的靜態資料,則服務必須具有代表發起人使用 KMS 金鑰的許可。如需詳細資訊,請參閱《Amazon DynamoDB 入門指南》中的客戶管理 KMS 金鑰。
參數
當您使用此動作建立 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
。AWS CLI 僅支援替代範本:API 和
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 入門