SNS - AWS IoT Core

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

SNS

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

您可以按照教程执行操作,该教程向您说明如何使用 SNS 操作创建和测试规则。有关更多信息,请参阅教程:发送 Amazon SNS 通知

注意

SNS 操作不支持Amazon SNS FIFO(先进先出)主题。由于规则引擎是一个完全分布式服务,因此无法保证触发 SNS 操作时的消息顺序。

要求

此规则操作具有以下要求:

  • AWS IoT 可以代入执行sns:Publish操作的 IAM 角色。有关更多信息,请参阅授予 AWS IoT 规则所需的访问权限

    在 AWS IoT 控制台中,您可以选择或创建 AWS IoT 允许执行此规则操作的角色。

  • 如果您使用 AWS KMS 客户托管 AWS KMS key 来加密 Amazon SNS 中的静态数据,则该服务必须有权代表呼叫 AWS KMS key 者使用这些数据。有关更多信息,请参阅 Amazon Simple Notification Service 开发人员指南中的密钥管理

参数

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

targetArn

推送通知将发送到的 SNS 主题或单个设备。

仅支持替换模板:API 且 AWS CLI 仅支持

messageFormat

(可选)消息格式。Amazon SNS 使用此设置来确定是否应解析负载,以及是否应提取负载的特定于平台的相关部分。有效值:JSONRAW。默认值为 RAW

支持替换模板:否

roleArn

允许访问 SNS 的 IAM 角色。有关更多信息,请参阅要求

支持替换模板:否

示例

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

另请参阅