SNS - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

SNS

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

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

注意

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

Requirements

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

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

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

  • 如果您使用 Amazon Key Management Service (Amazon KMS) 客户托管的密钥 (CMK) 对 Amazon SNS 中的数据进行静态加密,则服务必须具有代表调用方使用 CMK 的权限。有关更多信息,请参阅 Amazon Simple Notification Service 开发人员指南中的密钥管理

Parameters

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

targetArn

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

支持替换模板:仅限 API 和 Amazon CLI

messageFormat

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

支持替换模板:否

roleArn

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

支持替换模板:否

Examples

下面的 JSON 示例介绍了如何在 Amazon 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 示例定义了 Amazon 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" } } ] } }

另请参阅