モバイルプッシュ通知サービスの Amazon SNS 有効期限 (TTL) メッセージ属性を使用する - Amazon Simple Notification Service

モバイルプッシュ通知サービスの Amazon SNS 有効期限 (TTL) メッセージ属性を使用する

Amazon Simple Notification Service (Amazon SNS) では、モバイルプッシュ通知サービスの有効期限 (TTL) メッセージ属性の設定がサポートされています。この属性は、モバイルプッシュ通知サービス (Amazon Device Messaging (ADM)、Firebase Cloud Messaging (FCM) など) の Amazon SNS メッセージ本文内に TTL を設定する既存の機能に追加されたものです。

TTL メッセージ属性は、メッセージの有効期限メタデータを指定するために使用します。この属性を使用して、Apple Push Notification Service (APNs) や FCM などのプッシュ通知サービスによってエンドポイントにメッセージが配信される時間を指定できます。何らかの理由 (モバイルデバイスがオフになっているなど) で、指定した TTL 内にメッセージが配信されなかった場合、そのメッセージは破棄され、以降その配信は試みられません。メッセージ属性に TTL を指定するには、AWS Management Console、AWS ソフトウェア開発キット (SDK)、またはクエリ API を使用します。

プッシュ通知サービスの TTL メッセージ属性

以下に示しているのは、AWS SDK またはクエリ API の使用時に設定できるプッシュ通知サービスの TTL メッセージ属性の一覧です。

プッシュ通知サービス TTL メッセージ属性
Amazon Device Messaging (ADM) AWS.SNS.MOBILE.ADM.TTL
Apple Push Notification Service (APNS) AWS.SNS.MOBILE.APNS.TTL
Apple Push Notification Service Sandbox (APNs_SANDBOX) AWS.SNS.MOBILE.APNS_SANDBOX.TTL
Baidu Cloud Push (Baidu) AWS.SNS.MOBILE.BAIDU.TTL
Firebase Cloud Messaging (FCM) AWS.SNS.MOBILE.FCM.TTL
Windows Push Notification Services (WNS) AWS.SNS.MOBILE.WNS.TTL

各プッシュ通知サービスは TTL を個別に処理します。Amazon SNS では、すべてのプッシュ通知サービスに対する TTL の抽象ビューが提供されるため、TTL の指定がより簡単になります。AWS Management Console を使用して TTL (秒単位) を指定するとき、TTL 値を一度入力するだけで、Amazon SNS はメッセージの発行時に、選択されたプッシュ通知サービスごとに TTL を計算します。

TTL は発行時間を基準にします。特定のプッシュ通知サービスにプッシュ通知メッセージを発行する前に、Amazon SNS はプッシュ通知のドウェル時間 (発行のタイムスタンプからプッシュ通知サービスへの発行直前までの時間) を計算し、残りの TTL をそのプッシュ通知サービスに渡します。TTL がドウェル時間よりも短い場合、Amazon SNS はプッシュ通知メッセージの発行を試みません。

プッシュ通知メッセージに TTL を指定する場合、TTL 値は正の整数でなければなりません。ただし、0 、APN や FCM など、プッシュ通知サービスに固有の意味を持つ場合は除きます。TTL 値を 0 に設定した場合、プッシュ通知サービスに対して 0 に特定の意味がないと、Amazon SNS はメッセージを破棄します。APN を使用した場合に 0 に設定した TTL パラメータの詳細については、バイナリプロバイダー API ドキュメントの表 A-3 リモート通知のアイテム識別子を参照してください。

TTL を決定するための優先順位

Amazon SNS がプッシュ通知メッセージの TTL を決定するための優先順位は以下の順序に基づきます。最も小さい番号が最も高い優先順位を表しています。

  1. メッセージ属性の TTL

  2. メッセージ本文の TTL

  3. プッシュ通知サービスのデフォルト TTL (サービスごとに異なる)

  4. Amazon SNS のデフォルト TTL (4 週間)

同じメッセージに対して (メッセージ属性とメッセージ本文で) 異なる TTL 値を設定した場合、Amazon SNS はメッセージ属性の TTL に一致するようにメッセージ本文の TTL を変更します。

AWS Management Console を使用して TTL を指定する

  1. Amazon SNS コンソールにサインインします。

  2. ナビゲーションパネルで [モバイル]、[プッシュ通知] を選択します。

  3. [モバイルプッシュ通知] ページの [プラットフォームアプリケーション] セクションで、アプリケーションを選択します。

  4. [MyApplication] ページの [エンドポイント] セクションでエンドポイントを選択したら、[メッセージの発行] を選択します。

  5. [メッセージの詳細] セクションで、TTL (プッシュ通知サービスがエンドポイントに配信される秒数) を入力します。

  6. [メッセージの発行] を選択します。