針對行動推播通知使用 Amazon SNS 時間即時訊息屬性 - Amazon Simple Notification Service

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

針對行動推播通知使用 Amazon SNS 時間即時訊息屬性

Amazon 簡易通知服務 (AmazonSNS) 可為行動推送通知訊息設定存留時間 (TTL) 訊息屬性提供支援。這是在 Amazon 消息正文中為支持此功能的移動推送通知服務(例如 Amazon 設TTL備SNS消息傳遞(ADM)和 Firebase 雲消息傳遞()在發送到 Android 時的現有功能之外。FCM

TTLmessage 屬性用於指定有關訊息的到期中繼資料。這可讓您指定推播通知服務 (例如 Apple 推播通知服務 (APNs) 或FCM必須將訊息傳送至端點的時間長度。如果由於某種原因(例如移動設備已關閉)消息未在指定的範圍內傳遞TTL,則消息將被丟棄,並且不會進一步嘗試傳遞消息。若要TTL在訊息屬性內指定,您可以使用 AWS Management Console、 AWS 軟體開發套件 (SDKs) 或查詢API。

TTL推播通知服務的訊息屬性

以下是推播通知服務的TTL訊息屬性清單,您可以在使用 AWS SDKs或查詢時用來設定API:

推送通知服務 TTL訊息屬性
Amazon 設備消息(ADM) AWS.SNS.MOBILE.ADM.TTL
蘋果推送通知服務(APNs) AWS.SNS.MOBILE.APNS.TTL
蘋果推送通知服務沙箱 (APNs_SANDBOX) AWS.SNS.MOBILE.APNS_SANDBOX.TTL
百度雲端推送 (百度) AWS.SNS.MOBILE.BAIDU.TTL
火力地堡雲消息傳遞(FCM發送到安卓系統時) AWS.SNS.MOBILE.FCM.TTL
視窗推送通知服務 (WNS) AWS.SNS.MOBILE.WNS.TTL

每個推播通知服務的處理TTL方式不同。Amazon SNS 提供了所有TTL推送通知服務的抽象視圖,這使得它更容易指定TTL。當您使用 AWS Management Console 來指定 TTL (以秒TTL為單位) 時,只需輸入一次TTL值,Amazon 就SNS會在發佈訊息時計算每個選取的推播通知服務。

TTL是相對於發佈時間。在將推播通知訊息傳遞給特定推播通知服務之前,Amazon 會SNS計算推播通知的停留時間 (發佈時間戳記之間的時間與移交推播通知服務之前的時間),並將剩餘的時間傳遞TTL給特定推播通知服務。如果TTL比停留時間短,Amazon 將SNS不會嘗試發布。

如果您TTL為推播通知訊息指定 a,則該TTL值必須是正整數,除非的值對推播通知服務0具有特定意義,例如 APNs and FCM (傳送至 Android 時)。如果該TTL值設置為,0並且推送通知服務沒有特定含義0,那麼 Amazon SNS 將刪除消息。如需有關使用0時設定之TTL參數的詳細資訊APNs,請參閱二進位提供者API說明文件中遠端通知的表 A-3 項目識別碼

決定的優先順序 TTL

Amazon SNS 用來判斷推播通知訊息的TTL優先順序是根據下列順序,其中最低的數字具有最高優先順序:

  1. 訊息屬性 TTL

  2. 郵件正文 TTL

  3. 推播通知服務預設值 TTL (因服務而異)

  4. Amazon SNS 默認TTL(4 週)

如果您為相同的訊息設定不同的TTL值 (一個在訊息屬性中,另一個在訊息內文中),Amazon SNS 會修改訊息內文TTL中的值,以符合訊息屬性中的TTL指定值。

TTL使用指定 AWS Management Console

  1. 登錄到 Amazon 控SNS制台

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

  3. Mobile push notifications (行動裝置推送通知) 頁面上,在 Platform applications (平台應用程式) 區段內,選擇應用程式。

  4. 在「」 MyApplication 頁面上的「端點」區段中,選擇應用程式端點,然後選擇「發佈訊息」。

  5. 在「訊息詳細資料」區段中,輸入 TTL (推播通知服務必須將訊息傳遞至端點的秒數)。

  6. 選擇 Publish message (發佈訊息)。