

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 行動應用程式的 Amazon SNS 應用程式事件通知
<a name="application-event-notifications"></a>

Amazon SNS 提供發生特定應用程式事件時觸發通知的支援。然後您可以對該事件採取一些程式設計動作。您的應用程式必須包含對於推送通知服務的支援，例如 Apple Push Notification Service (APN)、Firebase Cloud Messaging (FCM) 和 Windows 推送通知服務 (WNS)。您可以使用 Amazon SNS 主控台 AWS CLI或 AWS SDKs 設定應用程式事件通知。

## 可用的應用程式事件
<a name="application-event-notifications-events"></a>

應用程式事件通知會在建立、刪除和更新個別平台端點，以及傳遞失敗時，進行追蹤。以下是應用程式事件的屬性名稱。


| 屬性名稱 | 通知觸發 | 
| --- | --- | 
| EventEndpointCreated | 新的平台端點已新增到您的應用程式。 | 
| EventEndpointDeleted | 任何與您應用程式相關聯的平台端點已遭到刪除。 | 
| EventEndpointUpdated | 任何與您應用程式相關聯的平台端點屬性已產生變更。 | 
| EventDeliveryFailure | 傳遞到任何與您應用程式相關聯的平台端點時發生永久性失敗。 若要追蹤平台應用程式端的交付失敗，請為應用程式的訂閱訊息傳遞狀態事件。如需詳細資訊，請參閱[使用訊息傳遞狀態的 Amazon SNS 應用程式屬性](https://docs.aws.amazon.com/sns/latest/dg/sns-msg-status.html)。  | 

您可以將任何屬性與應用程式建立關聯，讓應用程式接收這些事件通知。

## 傳送行動裝置推送通知
<a name="application-event-notifications-howto-set"></a>

若要傳送應用程式事件通知，您可以指定主題接收每個事件類型的通知。當 Amazon SNS 傳送通知時，主題可將其路由到將採取程式設計動作的端點。

**重要**  
高容量應用程式會建立大量的應用程式事件通知 (例如成千上萬)，而佔用供人使用的端點，例如電子郵件地址、電話號碼和行動應用程式。傳送應用程式事件通知到主題時請考慮下列準則：  
接收通知的每個主題應僅包含程式設計端點的訂閱，例如 HTTP 或 HTTPS 端點、Amazon SQS 佇列或 AWS Lambda 函數。
若要減少由通知所觸發的處理次數，請將每個主題的訂閱數限制在較低的數字 (例如五個或更少)。

您可以使用 Amazon SNS 主控台、 AWS Command Line Interface (AWS CLI) 或 AWS SDKs傳送應用程式事件通知。

### AWS 管理主控台
<a name="application-event-notifications-howto-set-console"></a>

1. 登入 [Amazon SNS 主控台](https://console.aws.amazon.com/sns/home)。

1. 在導覽面板中，選擇 **Mobile** (行動裝置)、**Push notifications** (推送通知)。

1. 在**行動推播通知**頁面的**平台應用程式**區段中，選擇應用程式，然後選擇**編輯**。

1. 展開 **Event notifications** (事件通知) 區段。

1. 選擇 **Actions** (動作)、**Configure events** (設定事件)。

1. 輸入要用於下列事件的主題 ARN：
   + 端點建立
   + 端點刪除
   + 端點更新
   + 傳遞失敗

1. 選擇**儲存變更**。

### AWS CLI
<a name="awscli"></a>

執行 [set-platform-application-attributes](https://docs.aws.amazon.com/cli/latest/reference/sns/set-platform-application-attributes.html) 命令。

下面的範例為所有四個應用程式事件設定相同的 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
<a name="application-event-notifications-sdk"></a>

使用 AWS SDK 透過 Amazon SNS API 提交`SetPlatformApplicationAttributes`請求來設定應用程式事件通知。

如需 AWS SDK 開發人員指南和程式碼範例的完整清單，包括入門說明和先前版本的相關資訊，請參閱 [搭配 SDK 使用 Amazon SNS AWS](sdk-general-information-section.md)。