

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

# SQS
<a name="sqs-rule-action"></a>

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

**注意**  
SQS 操作不支持 [Amazon SQS FIFO（先进先出）队列](https://docs.amazonaws.cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html)。由于规则引擎是一个完全分布式服务，因此无法保证触发 SQS 操作时的消息顺序。

## 要求
<a name="sqs-rule-action-requirements"></a>

此规则操作具有以下要求：
+  Amazon IoT 可以代入执行`sqs:SendMessage`操作的 IAM 角色。有关更多信息，请参阅 [授予 Amazon IoT 规则所需的访问权限](iot-create-role.md)。

  在 Amazon IoT 控制台中，您可以选择或创建 Amazon IoT 允许执行此规则操作的角色。
+ 如果您使用 Amazon KMS 客户托管 Amazon KMS key 对 Amazon SQS 中的静态数据进行加密，则该服务必须有权代表来电者使用这些数据。 Amazon KMS key 有关更多信息，请参阅*《Amazon Simple Queue Service 开发人员指南》*中的[密钥管理](https://docs.amazonaws.cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html)。

## 参数
<a name="sqs-rule-action-parameters"></a>

使用此操作创建 Amazon IoT 规则时，必须指定以下信息：

`queueUrl`  
数据写入的 Amazon SQS 队列的 URL。此 URL 中的区域不必与您的[Amazon IoT 规则 Amazon Web Services 区域](https://docs.amazonaws.cn/iot/latest/developerguide/iot-rules.html)相同。  
使用 SQS 规则操作跨 Amazon Web Services 区域 进行数据传输可能会产生额外费用。有关更多信息，请参阅 [Amazon SQS 定价](https://www.amazonaws.cn/sqs/pricing/)。
仅支持[替换模板](iot-substitution-templates.md)：API 且 Amazon CLI 仅支持

`useBase64`  
将该参数设置为 `true` 以配置规则操作，以便在将数据写入 Amazon SQS 队列之前对消息数据进行 base64 编码。默认值为 `false`。  
支持[替换模板](iot-substitution-templates.md)：否

`roleArn`  
允许访问 Amazon SQS 队列的 IAM 角色。有关更多信息，请参阅 [要求](#sqs-rule-action-requirements)。  
支持[替换模板](iot-substitution-templates.md)：否

## 示例
<a name="sqs-rule-action-examples"></a>

以下 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"
                }
            }
        ]
    }
}
```

## 另请参阅
<a name="sqs-rule-action-see-also"></a>
+ *《Amazon Simple Queue Service 开发人员指南》*中的[什么是 Amazon Simple Queue Service？](https://docs.amazonaws.cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/)