View a markdown version of this page

SQS - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SQS

SQS (sqs) 操作将 MQTT 消息中的数据发送到 Amazon Simple Queue Service(Amazon SQS)队列。

注意

SQS 操作不支持 Amazon SQS FIFO () First-In-First-Out 队列。由于规则引擎是一个完全分布式服务,因此无法保证触发 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 定价。

支持替代模板: Amazon CLI 仅支持 API

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

另请参阅