本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SQS
SQS(sqs
) 操作将MQTT消息中的数据发送到亚马逊简单队列服务 (AmazonSQS) 队列。
注意
该SQS操作不支持 Amazon SQSFIFO(先入先出)队列。由于规则引擎是完全分布式的服务,因此无法保证触发SQS操作时的消息顺序。
要求
此规则操作具有以下要求:
-
AWS IoT 可以IAM担任执行
sqs:SendMessage
操作的角色。有关更多信息,请参阅 授予 AWS IoT 规则所需的访问权限。在 AWS IoT 控制台中,您可以选择或创建 AWS IoT 允许执行此规则操作的角色。
-
如果您使用 AWS KMS 客户管理 AWS KMS key 来加密Amazon中的静态数据SQS,则该服务必须有权代表呼叫者使用这些数据。 AWS KMS key 有关更多信息,请参阅 Amazon Simple Queue Service 开发人员指南中的密钥管理。
参数
使用此操作创建 AWS IoT 规则时,必须指定以下信息:
queueUrl
-
要向其写入数据的亚马逊SQS队列的。URL此处的区域URL不必与您的AWS IoT 规则 AWS 区域相同。
注意
AWS 区域 使用SQS规则操作进行交叉数据传输可能会产生额外费用。有关更多信息,请参阅 Amazon SQS 定价
。 支持替换模板:API且 AWS CLI 仅支持
useBase64
-
将此参数设置为,
true
将规则操作配置为在将数据写入 Amazon 队列之前对消息数据进行 base64 编码。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示例定义了一个在 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" } } ] } }
另请参阅
-
Amazon Simple Queue Service 开发人员指南中的什么是 Amazon Simple Queue Service?