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

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

移动应用程序事件

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

可用应用程序事件

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

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

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

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

发送移动推送通知

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

重要

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

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

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

您可以使用发送应用程序事件通知 Amazon SNS 控制台, AWS Command Line Interface (人AWS CLI),或 AWS SDKs.

AWS 管理控制台

  1. 登录到 Amazon SNS 控制台

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

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

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

  5. 依次选择 ActionsConfigure events

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

    • 已创建终端节点

    • 已删除终端节点

    • 已更新终端节点

    • 传输失败

  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 SDKs

拨打以下电话之一 APIs,根据您的目标编程语言或平台: