

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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)。

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

當您使用此動作建立 AWS IoT 規則時，您必須指定下列資訊：

`targetArn`  
推送通知傳送到的 SNS 主題或個別裝置。  
 AWS CLI 僅支援[替代範本](iot-substitution-templates.md)：API 和

`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)