移动应用程序事件 - Amazon Simple Notification Service

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

移动应用程序事件

Amaz SNS on 支持在某些应用程序事件发生时触发通知。然后,您可以对该事件采取一些编程操作。您的应用程序必须支持推送通知服务,例如 Apple 推送通知服务 (APNs)、Firebase 云消息 (FCM) 和 Windows 推送通知服务 (WNS)。您可以使用 Amazon SNS 控制台设置应用程序事件通知 AWS CLI,或 AWS SDKs。

可用应用程序事件

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

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

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

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

发送移动推送通知

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

重要

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

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

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

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

AWS Management Console

  1. 登录 Amazon SNS 控制台

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

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

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

  5. 依次选择 ActionsConfigure events

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

    • 已创建终端节点

    • 已删除终端节点

    • 已更新终端节点

    • 传输失败

  7. 选择 Save changes(保存更改)

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

通过SNSAPI使用向亚马逊提交SetPlatformApplicationAttributes请求来设置应用程序事件通知 AWS SDK。

有关 AWS SDK开发者指南和代码示例的完整列表,包括入门帮助和有关先前版本的信息,请参阅将 Amazon SNS 与 AWS SDK