

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

# SNS
<a name="sns-rule-action"></a>

SNS (`sns`) 操作将 MQTT 消息中的数据作为 Amazon Simple Notification Service（Amazon SNS）推送通知发送。

您可以按照教程执行操作，该教程向您说明如何使用 SNS 操作创建和测试规则。有关更多信息，请参阅 [教程：发送 Amazon SNS 通知](iot-sns-rule.md)。

**注意**  
SNS 操作不支持[Amazon SNS FIFO（先进先出）主题](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html)。由于规则引擎是一个完全分布式服务，因此无法保证触发 SNS 操作时的消息顺序。

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

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

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

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

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

`targetArn`  
推送通知将发送到的 SNS 主题或单个设备。  
仅支持[替换模板](iot-substitution-templates.md)：API 且 AWS CLI 仅支持

`messageFormat`  
（可选）消息格式。Amazon SNS 使用此设置来确定是否应解析有效载荷，以及是否应提取有效载荷的特定于平台的相关部分。有效值：`JSON`、`RAW`。默认值为 `RAW`。  
支持[替换模板](iot-substitution-templates.md)：否

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

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

以下 JSON 示例在 AWS IoT 规则中定义了 SNS 操作。

```
{
    "topicRulePayload": {
        "sql": "SELECT * FROM 'some/topic'", 
        "ruleDisabled": false, 
        "awsIotSqlVersion": "2016-03-23",
        "actions": [
            {
                "sns": {
                    "targetArn": "arn:aws:sns:us-east-2:123456789012:my_sns_topic", 
                    "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sns"
                }
            }
        ]
    }
}
```

以下 JSON 示例在 AWS IoT 规则中定义了带有替换模板的 SNS 操作。

```
{
    "topicRulePayload": {
        "sql": "SELECT * FROM 'some/topic'",
        "ruleDisabled": false,
        "awsIotSqlVersion": "2016-03-23",
        "actions": [
            {
                "sns": {
                    "targetArn": "arn:aws:sns:us-east-1:123456789012:${topic()}",
                    "messageFormat": "JSON",
                    "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sns"
                }
            }
        ]
    }
}
```

## 另请参阅
<a name="sns-rule-action-see-also"></a>
+ *《Amazon Simple Notification Service 开发人员指南》*中的[什么是 Amazon Simple Notification Service？](https://docs.aws.amazon.com/sns/latest/dg/)
+ [教程：发送 Amazon SNS 通知](iot-sns-rule.md)