View a markdown version of this page

SQS - AWS IoT Core

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

SQS

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

注意

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

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

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

另请参阅