Amazon Simple Notification Service
开发人员指南 (API Version 2010-03-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

应用程序事件通知

Amazon SNS 提供在发生特定应用程序事件时触发通知的支持。然后,您可以对该事件采取一些编程操作。您的应用程序必须包括对推送通知服务的支持,例如 Apple Push Notification Service (APNS)、Google Cloud Messaging for Android (GCM) 和 Windows Push Notification Services (WNS)。使用 Amazon SNS 控制台、AWS CLI 或 AWS 开发工具包设置应用程序事件通知。

可用应用程序事件

应用程序事件通知跟踪单个平台终端节点何时创建、删除、更新以及出现传输故障。每个应用程序事件的属性名称如下所示:

属性名称 说明
EventEndpointCreated 向应用程序添加新的平台终端节点时触发的通知。
EventEndpointDeleted 删除与应用程序关联的任何平台终端节点时触发的通知。
EventEndpointUpdated 与应用程序关联的平台终端节点的任何属性发生更改时触发的通知。
EventDeliveryFailure 向与应用程序关联的任何平台终端节点的传输操作发生永久性故障时触发的通知。

注意

要跟踪平台应用程序端的传输故障,需要为应用程序订阅消息传输状态事件。有关详细信息,请参阅为消息传输状态使用 Amazon SNS 应用程序属性

前面的每个属性都可以与一个应用程序关联。然后,应用程序可以接收这些事件通知。

发送应用程序事件通知

要发送应用程序事件通知,您需要为每种事件类型指定用于接收通知的主题。Amazon SNS 发送通知时,主题可以将它们路由至将采取编程操作的终端节点。

重要

高容量应用程序将创建大量的应用程序事件通知(例如,数万条),这会“淹没”供人们使用的终端节点,例如电子邮件、电话号码和移动应用程序。在向主题发送应用程序事件通知时,需要考虑以下指导原则:

  • 接收通知的每个主题应仅包含对以编程形式操作的终端节点的订阅,例如 HTTP 或 HTTPS 终端节点、Amazon SQS 队列或 AWS Lambda 函数。

  • 要减少通知触发的处理量,请将每个主题的订阅数限制在很小的数目(例如,五个或更少)。

您可以使用 Amazon SNS 控制台、AWS Command Line Interface (AWS CLI) 或 AWS 开发工具包发送应用程序事件通知。

AWS 管理控制台

  1. 通过以下网址登录 AWS 管理控制台 并打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v2/home

  2. 在服务导航窗格中,选择 Applications

  3. 选择要为其发送事件通知的应用程序的名称。

  4. 依次选择 ActionsConfigure events

  5. 对于每个要发送事件通知的事件,请输入将用于接收通知的 Amazon SNS 主题的 ARN。

  6. 选择 Save configuration。此时事件通知已设置。

AWS CLI

运行 set-platform-application-attributes 命令。

以下示例为全部四个应用程序事件设置相同的 Amazon SNS 主题:

Copy
aws sns set-platform-application-attributes --platform-application-arn arn:aws:sns:us-east-1:12345EXAMPLE:app/GCM/MyGCMPlatformApplication --attributes EventEndpointCreated="arn:aws:sns:us-east-1:12345EXAMPLE:MyGCMPlatformApplicationEvents", EventEndpointDeleted="arn:aws:sns:us-east-1:12345EXAMPLE:MyGCMPlatformApplicationEvents", EventEndpointUpdated="arn:aws:sns:us-east-1:12345EXAMPLE:MyGCMPlatformApplicationEvents", EventDeliveryFailure="arn:aws:sns:us-east-1:12345EXAMPLE:MyGCMPlatformApplicationEvents"

AWS 软件开发工具包

根据您的目标编程语言或平台,调用以下 API 之一: