移动应用程序事件 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

移动应用程序事件

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

可用应用程序事件

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

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

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

您可以将任何属性与应用程序关联,然后应用程序就可以接收这些事件通知。

发送移动推送通知

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

重要

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

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

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

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

Amazon Web Services Management Console

  1. 登录 Amazon SNS 控制台

  2. 在导航面板中,选择移动推送通知

  3. Mobile push notifications (移动推送通知) 页面上的平台应用程序部分中,选择应用程序,然后选择编辑

  4. 展开 Event notifications (事件通知) 部分。

  5. 依次选择 ActionsConfigure events

  6. 输入要用于以下事件的主题的 ARN:

    • 已创建终端节点

    • 已删除终端节点

    • 已更新终端节点

    • 传输失败

  7. 选择保存更改

Amazon CLI

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

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

aws sns set-platform-application-attributes --platform-application-arn arn:aws:sns:us-east-1:12345EXAMPLE:app/FCM/MyFCMPlatformApplication --attributes EventEndpointCreated="arn:aws:sns:us-east-1:12345EXAMPLE:MyFCMPlatformApplicationEvents", EventEndpointDeleted="arn:aws:sns:us-east-1:12345EXAMPLE:MyFCMPlatformApplicationEvents", EventEndpointUpdated="arn:aws:sns:us-east-1:12345EXAMPLE:MyFCMPlatformApplicationEvents", EventDeliveryFailure="arn:aws:sns:us-east-1:12345EXAMPLE:MyFCMPlatformApplicationEvents"

Amazon开发工具包

通过使用 Amazon 开发工具包提交 Amazon SNS API 的 SetPlatformApplicationAttributes 请求来设置应用程序事件通知。

有关 Amazon 开发工具包开发人员指南和代码示例的完整列表,包括帮助入门和有关早期版本的信息,请参阅 将 Amazon SNS 与 Amazon 开发工具包结合使用