Amazon SNS メッセージ属性 - Amazon Simple Notification Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SNS メッセージ属性

Amazon はメッセージ属性の配信SNSをサポートしています。これにより、メッセージに関する構造化メタデータ項目 (タイムスタンプ、地理空間データ、署名、識別子など) を提供できます。SQS サブスクリプションの場合、Raw Message Delivery が有効になっている場合、最大 10 個のメッセージ属性を送信できます。10 個を超えるメッセージ属性を送信するには、Raw メッセージの配信を無効にする必要があります。Raw Message Delivery が有効な Amazon SQSサブスクリプションに向けられたメッセージ属性が 10 を超えるメッセージは、クライアント側のエラーとして破棄されます。

メッセージ属性はオプションであり、メッセージ本文とは別個のものですが、同時に送信されます。受信者は、この情報を使用して、メッセージ本文を最初に処理する必要なしでメッセージを処理する方法を決定できます。

AWS Management Console または を使用して属性でメッセージを送信する方法については AWS SDK for Java、を使用して Amazon SNSトピックにメッセージを公開するには AWS Management Consoleチュートリアルを参照してください。

注記

メッセージ属性は、メッセージ構造が文字列の場合にのみ送信され、 は送信されませんJSON。

また、モバイルエンドポイント用のプッシュ通知メッセージを構築するためにメッセージ属性を使用することもできます。このシナリオでは、メッセージ属性はプッシュ通知メッセージの構築のみに使用されます。属性は、Amazon エンドポイントにメッセージ属性を持つメッセージを送信するときに、そのままSQSエンドポイントに配信されません。

メッセージ属性を使用して、サブスクリプションフィルターポリシーでメッセージをフィルター処理可能にすることもできます。フィルターポリシーは、トピックのサブスクリプションに適用もできます。フィルターポリシーの範囲を MessageAttributes (デフォルト) に設定して、フィルターポリシーを適用すると、サブスクリプションは、ポリシーが受け入れる属性を持つメッセージのみを受信します。詳細については、「Amazon SNS メッセージフィルタリング」を参照してください。

注記

メッセージ属性をフィルタリングに使用する場合、値は有効なJSON文字列である必要があります。これにより、メッセージ属性フィルタリングが有効になっているサブスクリプションにメッセージが確実に配信されます。

メッセージ属性の項目および検証

各メッセージ属性は、次の項目で構成されています。

  • 名前 - メッセージ属性名には、A-Z、a-z、0-9、下線 (_)、ハイフン (-)、ピリオド (.) を使用できます。名前の先頭と末尾をピリオドにすることはできず、ピリオドを連続して使用することはできません。名前では大文字と小文字が区別され、メッセージのすべての属性名間で一意にする必要があります。名前の長さは最大 256 文字です。名前の先頭を「AWS.」や「Amazon.」(または、大文字と小文字が異なるあらゆる変化形) にすることはできません。これらのプレフィックスは Amazon Web Services で使用するために取り置かれています。

  • - サポートされるメッセージ属性のデータ型は、StringString.ArrayNumberBinaryです。データ型のコンテンツには、メッセージ本文と同じ制限があります。詳細については、「メッセージ属性のデータ型と検証」セクションを参照してください。

  • - ユーザー指定のメッセージ属性値。文字列データ型の場合、値属性のコンテンツにはメッセージ本文と同じ制限があります。詳細については、「Amazon Simple Notification Service APIリファレンス」の「公開アクション」を参照してください。

名前、型、値を空または Null にすることはできません。さらに、メッセージ本文を空または Null にすることもできません。メッセージ属性のすべての部分 (名前、型、値を含む) は、メッセージサイズの制限に含められます。制限は 256 KB です。

メッセージ属性のデータ型と検証

メッセージ属性データ型は、メッセージ属性値が Amazon によってどのように処理されるかを識別しますSNS。例えば、型が数値の場合、Amazon は数値であることをSNS検証します。

Amazon は、記載されている場合を除き、すべてのエンドポイントで次の論理データ型SNSをサポートしています。

  • 文字列 - 文字列は UTF-8 バイナリエンコーディングの Unicode です。コード値のリストについては、http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters を参照してください。

    注記

    サロゲート値は、メッセージ属性ではサポートされていません。例えば、サロゲート値を使用して絵文字を表すと、次のエラーが発生します: Invalid attribute value was passed in for message attribute

  • String.Array - 複数の値を含むことができる文字列として書式設定される配列。この値は、文字列、数値、またはキーワード (truefalsenull) とすることができます。数値型またはブール型の String.Array は引用符を必要としません。複数の String.Array 値はカンマで区切られます。

    このデータ型は AWS Lambda サブスクリプションではサポートされていません。Lambda エンドポイントにこのデータ型を指定すると、Amazon が Lambda にSNS配信するJSONペイロードのデータString型として渡されます。

  • 数値 - 数値は正または負の整数か、浮動小数点数です。数値には、整数、浮動小数点数、倍精度浮動小数点数が通常サポートするほとんどの値を包含できる十分な範囲と精度があります。数値は -109~109 までの値とすることができ、小数点以下 5 桁の精度を持ちます。先頭と末尾の 0 は切り捨てられます。

    このデータ型は AWS Lambda サブスクリプションではサポートされていません。Lambda エンドポイントにこのデータ型を指定すると、Amazon が Lambda にSNS配信するJSONペイロードのデータString型として渡されます。

  • Binary - Binary 型の属性には、圧縮データ、暗号化データ、イメージなど、任意のバイナリデータが保存されます。

モバイルプッシュ通知の予約済みメッセージ属性

次の表は、プッシュ通知メッセージを構築するために使用できるモバイルプッシュ通知サービスの予約済みメッセージ属性の一覧です。

プッシュ通知サービス 予約済みメッセージ属性
ADM AWS.SNS.MOBILE.ADM.TTL
APNs1 AWS.SNS.MOBILE.APNS_MDM.TTL
AWS.SNS.MOBILE.APNS_MDM_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_PASSBOOK.TTL
AWS.SNS.MOBILE.APNS_PASSBOOK_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_VOIP.TTL
AWS.SNS.MOBILE.APNS_VOIP_SANDBOX.TTL
AWS.SNS.MOBILE.APNS.COLLAPSE_ID
AWS.SNS.MOBILE.APNS.PRIORITY
AWS.SNS.MOBILE.APNS.PUSH_TYPE
AWS.SNS.MOBILE.APNS.TOPIC
AWS.SNS.MOBILE.APNS.TTL

Baidu

AWS.SNS.MOBILE.BAIDU.DeployStatus
AWS.SNS.MOBILE.BAIDU.MessageKey
AWS.SNS.MOBILE.BAIDU.MessageType
AWS.SNS.MOBILE.BAIDU.TTL
FCM AWS.SNS.MOBILE.FCM.TTL
AWS.SNS.MOBILE.GCM.TTL
macOS AWS.SNS.MOBILE.MACOS_SANDBOX.TTL
AWS.SNS.MOBILE.MACOS.TTL

MPNS

AWS.SNS.MOBILE.MPNS.NotificationClass
AWS.SNS.MOBILE.MPNS.TTL

AWS.SNS.MOBILE.MPNS.Type

WNS AWS.SNS.MOBILE.WNS.CachePolicy
AWS.SNS.MOBILE.WNS.Group
AWS.SNS.MOBILE.WNS.Match
AWS.SNS.MOBILE.WNS.SuppressPopup
AWS.SNS.MOBILE.WNS.Tag
AWS.SNS.MOBILE.WNS.TTL
AWS.SNS.MOBILE.WNS.Type

1 メッセージ属性が要件を満たしていない場合、Apple は Amazon SNS通知を拒否します。詳細については、Apple Developer ウェブサイトの「 への通知リクエストの送信APNs」を参照してください。