「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
モバイルプッシュ通知サービスの Amazon SNS 有効期限 (TTL) メッセージ属性の使用
Amazon Simple Notification Service(Amazon SNS)では、モバイルプッシュ通知サービスの有効期限(TTL)メッセージ属性の設定がサポートされています。この属性は、モバイルプッシュ通知サービス (Amazon Device Messaging (ADM)、Firebase クラウドメッセージング (FCM) など) の Amazon SNS メッセージ本文内に TTL を設定する既存の機能に追加されたものです。
TTL メッセージ属性は、メッセージの有効期限メタデータを指定するために使用します。この属性を使用して、Apple Push Notification Service (APNs) や FCM などのプッシュ通知サービスによってエンドポイントにメッセージが配信される時間を指定できます。何らかの理由(モバイルデバイスがオフになっているなど)で、指定した TTL 内にメッセージが配信されなかった場合、そのメッセージは破棄され、以降その配信は試みられません。メッセージ属性に TTL を指定するには、AWS マネジメントコンソール、AWS Software Development Kit (SDK)、またはクエリ API を使用します。
プッシュ通知サービスの TTL メッセージ属性
以下は、AWS SDKs またはクエリAPI:
プッシュ通知サービス | 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 クラウドメッセージング (FCM) | AWS.SNS.MOBILE.FCM.TTL |
Windows プッシュ通知サービス (WNS) | AWS.SNS.MOBILE.WNS.TTL |
各プッシュ通知サービスはそれぞれ個別に TTL を処理します。Amazon SNS は、すべてのプッシュ通知サービスにまたがって TTL の要約ビューが表示されるため、TTL の指定がより簡単になります。AWS マネジメントコンソール を使用して TTL(秒単位)を指定するとき、TTL 値を一度入力するだけで、Amazon SNS はメッセージの発行時に、選択されたプッシュ通知サービスごとに TTL を計算します。
TTL は発行時間を基準にします。特定のプッシュ通知サービスにプッシュ通知メッセージを発行する前に、Amazon SNS はプッシュ通知のドウェル時間(発行のタイムスタンプからプッシュ通知サービスへの発行直前までの時間)を計算し、残りの TTL をそのプッシュ通知サービスに渡します。TTL がドウェル時間よりも短い場合、Amazon SNS はプッシュ通知メッセージの発行を試みません。
プッシュ通知メッセージの TTL を指定する場合、TTL 値は正の整数でなければなりません。ただし、APNs や FCM などのプッシュ通知サービスに対して 0
の値に特定の意味がある場合は除きます。TTL 値を 0
に設定した場合、プッシュ通知サービスに対して 0
に特定の意味がないと、Amazon SNS はメッセージを破棄します。TTL パラメータの詳細については、 0
使用している場合 APNs、参照 表A-3 リモート通知の項目識別子 を バイナリプロバイダAPI
TTL を決定するための優先順位
Amazon SNS がプッシュ通知メッセージの TTL を決定するための優先順位は以下の順序に基づきます。最も小さい番号が最も高い優先順位を表しています。
-
メッセージ属性の TTL
-
メッセージ本文の TTL
-
プッシュ通知サービスのデフォルト TTL (サービスごとに異なる)
-
Amazon SNS のデフォルト TTL (4 週間)
同じメッセージに対して (メッセージ属性とメッセージ本文で) 異なる TTL 値を設定した場合、Amazon SNS はメッセージ属性の TTL に一致するようにメッセージ本文の TTL を変更します。
AWS マネジメントコンソールを使用して TTL を指定する
-
Amazon SNS コンソール
にサインインします。 -
ナビゲーションパネルで [Mobile (モバイル)]、[Push notifications (プッシュ通知)] を選択します。
-
[Mobile push notifications (モバイルプッシュ通知)] ページの [Platform applications (プラットフォームアプリケーション)] セクションで、アプリケーションを選択します。
-
[
MyApplication
」ページの エンドポイント 」セクションで、アプリケーションエンドポイントを選択し、 メッセージの公開. -
[Message details (メッセージの詳細)] セクションで、TTL (プッシュ通知サービスがエンドポイントに配信される秒数) を入力します。
-
[メッセージの発行] を選択します。
でのTTLの指定 AWS SDKs
[ AWS(AWS) SDKs
SDK for Java の詳細については、「AWS SDK for Java の使用開始
以下の Java の例で示しているのは、TTL メッセージ属性を設定し、Baidu Cloud Push に登録されたエンドポイントにメッセージを発行する方法です。
Map<String, MessageAttributeValue> messageAttributes = new HashMap<String, MessageAttributeValue>(); // Insert your desired value (in seconds) of TTL here. For example, a TTL of 1 day would be 86,400 seconds. messageAttributes.put("AWS.SNS.MOBILE.BAIDU.TTL", new MessageAttributeValue().withDataType("String").withStringValue("86400")); PublishRequest publishRequest = new PublishRequest(); publishRequest.setMessageAttributes(messageAttributes); String message = "{\"title\":\"Test_Title\",\"description\":\"Test_Description\"}"; publishRequest.setMessage(message); publishRequest.setMessageStructure("json"); publishRequest.setTargetArn("arn:aws:sns:us-east-2:999999999999:endpoint/BAIDU/TestApp/318fc7b3-bc53-3d63-ac42-e359468ac730"); PublishResult publishResult = snsClient.publish(publishRequest);
Amazon SNS でのメッセージ属性の使用の詳細については、「Amazon SNS メッセージ属性」を参照してください。