Menu
Amazon Simple Notification Service
Developer Guide (API Version 2010-03-31)

Application Event Notifications

Amazon SNS provides support to trigger notifications when certain application events occur. You can then take some programmatic action on that event. Your application must include support for a push notification service such as Apple Push Notification Service (APNS), Google Cloud Messaging for Android (GCM), and Windows Push Notification Services (WNS). You set application event notifications using the Amazon SNS console, AWS CLI, or the AWS SDKs.

Available Application Events

Application event notifications track when individual platform endpoints are created, deleted, and updated, along with delivery failures. The attribute name for each application event is as follows:

Attribute name Description
EventEndpointCreated A notification is triggered when a new platform endpoint is added to your application.
EventEndpointDeleted A notification is triggered when any of the platform endpoints associated with your application is deleted.
EventEndpointUpdated A notification is triggered when any of the attributes of the platform endpoints associated with your application are changed.
EventDeliveryFailure A notification is triggered when a delivery to any of the platform endpoints associated with your application encounters a permanent failure.

Note

To track delivery failures on the platform application side, subscribe to message delivery status events for the application. For more information, see Using Amazon SNS Application Attributes for Message Delivery Status.

Each of the preceding attributes can be associated with an application. The application can then receive these event notifications.

Sending Application Event Notifications

To send application event notifications, you specify a topic to receive the notifications for each type of event. As Amazon SNS sends the notifications, the topic can route them to endpoints that will take programmatic action.

Important

High-volume applications will create a large number of application event notifications (e.g., tens of thousands), which will overwhelm endpoints meant for human use, such as email addresses, phone numbers, and mobile applications. Consider the following guidelines when you send application event notifications to a topic:

  • Each topic that receives notifications should contain only subscriptions for programmatic endpoints, such as HTTP or HTTPS endpoints, Amazon SQS queues, or AWS Lambda functions.

  • To reduce the amount of processing that is triggered by the notifications, limit each topic's subscriptions to a small number (e.g., five or fewer).

You can send application event notifications by using the Amazon SNS console, the AWS Command Line Interface (AWS CLI), or the AWS SDKs.

AWS Management Console

  1. Sign in to the AWS Management Console and open the Amazon SNS console at https://console.aws.amazon.com/sns/v2/home.

  2. In the service navigation pane, choose Applications.

  3. Choose the name of the application that you want to send event notifications for.

  4. Choose Actions, Configure events.

  5. For each of the events that you want to send event notifications for, type the ARN of the Amazon SNS topic that will receive the notifications.

  6. Choose Save configuration. The event notifications are set.

AWS CLI

Run the set-platform-application-attributes command.

The following example sets the same Amazon SNS topic for all four application events:

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 SDKs

Call one of the following APIs, depending on your target programming language or platform: