本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SQS
SQS (sqs
) 動作會從MQTT訊息將資料傳送至 Amazon Simple Queue Service (Amazon SQS) 佇列。
注意
SQS 動作不支援 Amazon SQSFIFO(先進先出) 佇列。由於規則引擎是全分散式服務,因此無法保證觸發SQS動作時的訊息順序。
要求
此規則動作具有下列需求:
-
AWS IoT 可以擔任以執行
sqs:SendMessage
操作IAM的角色。如需詳細資訊,請參閱授予 AWS IoT 規則所需的存取權。在 AWS IoT 主控台中,您可以選擇或建立角色, AWS IoT 以允許 執行此規則動作。
-
如果您使用受管 AWS KMS 客戶 AWS KMS key 來加密 Amazon 中的靜態資料SQS,服務必須具有代表發起人使用 AWS KMS key 的許可。如需詳細資訊,請參閱《Amazon Simple Queue Service 開發人員指南》中的金鑰管理。
參數
使用此動作建立 AWS IoT 規則時,您必須指定下列資訊:
queueUrl
-
要寫入資料的 Amazon SQS佇列URL的 。其中的區域URL不需要與您的 AWS 區域 AWS IoT 規則相同。
注意
AWS 區域 使用 SQS規則動作進行跨資料傳輸可能需要支付額外費用。如需詳細資訊,請參閱 Amazon SQS定價
。 AWS CLI 僅支援替代範本: API和
useBase64
-
將此參數設定為
true
,將規則動作設定為 base64 編碼訊息資料,然後再將資料寫入 Amazon SQS佇列。預設為false
。支援替代範本:否
roleArn
-
允許存取 Amazon SQS佇列IAM的角色。如需詳細資訊,請參閱要求。
支援替代範本:否
範例
下列JSON範例定義 AWS IoT 規則中的 SQS動作。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "sqs": { "queueUrl": "https://sqs.us-east-2.amazonaws.com/123456789012/my_sqs_queue", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sqs" } } ] } }
下列JSON範例定義 SQS動作,其中包含 AWS IoT 規則中的替代範本。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "sqs": { "queueUrl": "https://sqs.us-east-2.amazonaws.com/123456789012/${topic()}", "useBase64": true, "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sqs" } } ] } }
另請參閱
-
《Amazon Simple Queue Service 開發人員指南》中的什麼是 Amazon Simple Queue Service?