SQS
SQS (sqs) 操作将 MQTT 消息中的数据发送到 Amazon Simple Queue Service(Amazon SQS)队列。
注意
SQS 操作不支持 Amazon SQS FIFO(先进先出)队列。由于规则引擎是一个完全分布式服务,因此无法保证触发 SQS 操作时的消息顺序。
要求
此规则操作具有以下要求:
-
Amazon IoT 可以承担以执行
sqs:SendMessage操作的 IAM 角色。有关更多信息,请参阅 向 Amazon IoT 规则授予所需的访问权限。在 Amazon IoT 控制台中,您可以选择或创建一个角色以允许 Amazon IoT 执行此规则操作。
-
如果您使用 Amazon KMS 客户自主管理型 Amazon KMS key 加密 Amazon SQS 中的静态数据,服务必须具有代表调用方使用 Amazon KMS key 的权限。有关更多信息,请参阅《Amazon Simple Queue Service 开发人员指南》中的密钥管理。
参数
使用此操作创建 Amazon IoT 规则时,您必须指定以下信息:
queueUrl-
数据写入的 Amazon SQS 队列的 URL。此 URL 中的区域不必与您的 Amazon IoT 规则所在的 Amazon Web Services 区域相同。
注意
使用 SQS 规则操作跨 Amazon Web Services 区域 进行数据传输可能会产生额外费用。有关更多信息,请参阅 Amazon SQS 定价
。 支持替换模板:仅限 API 和 Amazon CLI
useBase64-
将该参数设置为
true以配置规则操作,以便在将数据写入 Amazon SQS 队列之前对消息数据进行 base64 编码。默认值为false。支持替换模板:否
roleArn-
允许访问 Amazon SQS 队列的 IAM 角色。有关更多信息,请参阅 要求。
支持替换模板:否
示例
下面的 JSON 示例介绍了如何在 Amazon 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 示例定义了 Amazon 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" } } ] } }
另请参阅
-
《Amazon Simple Queue Service 开发人员指南》中的什么是 Amazon Simple Queue Service?