移动应用程序的 Amazon SNS 应用程序事件通知 - Amazon Simple Notification Service

移动应用程序的 Amazon SNS 应用程序事件通知

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

可用应用程序事件

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

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

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

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

发送移动推送通知

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

重要

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

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

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

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

AWS Management Console

  1. 登录 Amazon SNS 控制台

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

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

  4. 展开事件通知部分。

  5. 依次选择操作配置事件

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

    • 已创建端点

    • 已删除端点

    • 已更新端点

    • 传输失败

  7. 选择保存更改

AWS 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"

AWS SDK

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

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