SQS - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SQS

使用 SQS (sqs) 動作,將資料從 MQTT 訊息傳送至 Amazon Simple Queue Service (Amazon SQS)佇列。

注意

SQS 動作不支援 Amazon SQS FIFO (先進先出) 佇列。因為規則引擎是一項完全分配式的服務,因此在觸發 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 IoT 規則 AWS 區域相同。

注意

使用 SQS 規則作業,交叉資料傳輸可能會產生額外費 AWS 區域 用。如需詳細資訊,請參閱 Amazon SQS 定價

支援替代範本:API 且 AWS CLI 僅支援

useBase64

設定此參數為 true 以配置規則動作,在資料寫入 Amazon SQS 佇列之前,對訊息資料進行 base64 編碼。預設為 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 範例會在 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/${topic()}", "useBase64": true, "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sqs" } } ] } }

另請參閱