Amazon Simple Notification Service
開発者ガイド

Amazon SNS メッセージ属性

Amazon SNS では、メッセージに関する構造化メタデータ項目 (タイムスタンプ、地理空間データ、署名、識別子など) を指定できるメッセージ属性の配信をサポートしています。各メッセージには最大 10 個の属性を指定できます。

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

AWS マネジメントコンソール または AWS SDK for Java を使用して、属性を使ってメッセージを送信する詳細については、「属性を使用して Amazon SNS トピックにメッセージを発行する」チュートリアルを参照してください。

重要

Amazon SQS エンドポイントでメッセージ属性を使用するには、サブスクリプション属性 Raw Message DeliveryTrue に設定する必要があります。raw メッセージ配信の詳細については、「Amazon SNS ラージペイロードと raw メッセージの配信」を参照してください。

メッセージ属性は、メッセージ構造が JSON ではなく String である場合にのみ送信されます。

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

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

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

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

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

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

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

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

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

メッセージ属性のデータ型は、メッセージ属性が Amazon SNS によって処理される方法を特定します。たとえば、型が数値の場合、Amazon SNS はその属性が数値であることを検証します。

Amazon SNS では、以下の論理データ型がサポートされています。

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

  • String.Array – 複数の値を含むことができる文字列として書式設定される配列。この値は、文字列、数値、またはキーワード (truefalsenull) とすることができます。

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

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

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

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

プッシュ通知サービス 予約済みメッセージ属性 必須 許可された値

Baidu

AWS.SNS.MOBILE.BAIDU.DeployStatus

False
  • 1 (開発環境、デフォルト)

  • 2 (本番環境)

AWS.SNS.MOBILE.BAIDU.MessageType False
  • 0 (アプリケーション内メッセージ)

  • 1 (アラート通知、デフォルト)

AWS.SNS.MOBILE.BAIDU.MessageKey False ショートメッセージ識別子

MPNS

AWS.SNS.MOBILE.MPNS.Type

True
  • raw

  • toast

  • token (タイル通知用)

AWS.SNS.MOBILE.MPNS.NotificationClass True
  • priority

  • real time

  • regular

WNS

AWS.SNS.MOBILE.WNS.Type True X-WNS-Type と同じ
AWS.SNS.MOBILE.WNS.CachePolicy False X-WNS-Cache-Policy と同じ
AWS.SNS.MOBILE.WNS.Group False X-WNS-Group と同じ
AWS.SNS.MOBILE.WNS.Match False X-WNS-Match と同じ
AWS.SNS.MOBILE.WNS.SuppressPopup False X-WNS-SuppressPopup と同じ
AWS.SNS.MOBILE.WNS.Tag False X-WNS-Tag と同じ