メッセージメタデータ - Amazon Simple Queue Service

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

メッセージメタデータ

メッセージ属性を使用して、アプリケーションの Amazon SQS メッセージにカスタムメタデータをアタッチできます。メッセージシステム属性を使用して、AWS X-Ray などの他の AWS サービスのメタデータを保存できます。

Amazon SQS メッセージ属性

Amazon SQS では、を使用してメッセージで構造化メタデータ (タイムスタンプ、地理空間データ、署名、識別子など) を含めることができます。メッセージ属性。各メッセージには最大 10 個の属性を指定できます。メッセージ属性はオプションであり、メッセージ本文とは別個のものです (ただし、メッセージ本文とともに送信されます)。コンシューマーはメッセージ属性を使用して、最初にメッセージ本文を処理することなく、特定の方法でメッセージを処理できます。Amazon SQS コンソールを使用して属性とともにメッセージを送信する方法については、「」を参照してください。属性を含むメッセージの送信 (コンソール)

注記

メッセージ属性と混同しないでくださいメッセージシステム属性: メッセージ属性を使用してアプリケーションの Amazon SQS メッセージにカスタムメタデータをアタッチできるのに対して、メッセージシステム属性他のメタデータを格納するにはAWSなどのサービスAWS X-Ray。

メッセージ属性コンポーネント

重要

メッセージ属性のすべてのコンポーネントは、256 KB というメッセージサイズの制限に含まれます。

NameTypeValue、およびメッセージ本文を空または Null にすることはできません。

各メッセージ属性は、次のコンポーネントで構成されています。

  • 名前— メッセージ属性名には次の文字を含めることができます。A-Z,a-z,0-9、下線 (_)、ハイフン (-)、ピリオド (.). 以下の制限が適用されます。

    • 最大 256 文字です

    • AWS. または Amazon. (大文字小文字が異なるものを含む) で始めることはできません

    • 大文字と小文字を区別します

    • メッセージのすべての属性名で一意である必要があります

    • 先頭と末尾をピリオドにすることはできません

    • シーケンスにピリオドを含めることはできません

  • タイプ— メッセージ属性のデータ型。サポートされるタイプには StringNumberBinary などがあります。任意のデータ型のカスタム情報を追加することもできます。データ型には、メッセージ本文と同じ制限があります (詳細については、「」を参照してください。SendMessageAmazon Simple Queue Service API 参照). また、以下の制限も適用されます。

    • 最大 256 文字です

    • 大文字と小文字を区別します

  • — メッセージ属性値。String データ型の場合、属性値の値にはメッセージ本文と同じ制限があります。

メッセージ属性のデータ型

メッセージ属性のデータ型により、対応するメッセージ属性値を処理する方法が Amazon SQS に指示されます。たとえば、タイプがNumberでは、Amazon SQS は数値を検証します。

Amazon SQS では、論理データ型がサポートされています。String,Number, およびBinaryオプションの形式のカスタムデータ型ラベルを使用して.custom-data-type

  • 文字列String属性には、有効な XML 文字を使用して Unicode テキストを保存できます。

  • 数値Number属性には、正または負の数値が保存されます。数値は最大 38 桁の精度で、10^-128 から 10^+126 までの間とします。

    注記

    Amazon SQS では、先頭および末尾のゼロは削除されます。

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

  • Custom— カスタムデータ型を作成するには、任意のデータ型に custom-type ラベルを追加します。例:

    • Number.byteNumber.shortNumber.int、および Number.float は、数値型の区別に役立ちます。

    • Binary.gif および Binary.png は、ファイルタイプの区別に役立ちます。

    注記

    Amazon SQS では、付け加えられたデータを解釈、検証、または使用することはありません。

    カスタム型ラベルには、メッセージ本文と同じ制限があります。

メッセージ属性の MD5 メッセージダイジェストの計算

AWS SDK for Java を使用している場合は、このセクションをスキップできます。-MessageMD5ChecksumHandlerSDK for Java のクラスでは、Amazon SQS メッセージ属性の MD5 メッセージダイジェストがサポートされています。

クエリ API またはいずれかを使用する場合AWSAmazon SQS メッセージ属性の MD5 メッセージダイジェストをサポートしないSDK では、次のガイドラインを使用して、MD5 メッセージダイジェストの計算を実行する必要があります。

注記

MD5 メッセージダイジェストの計算には、常にカスタムデータ型サフィックスを含めてください。

概要

MD5 メッセージダイジェスト計算アルゴリズムの概要を以下に示します。

  1. すべてのメッセージ属性を名前で昇順にソートします。

  2. 各属性 (NameTypeValue) の個々の部分をバッファにエンコードします。

  3. バッファ全体のメッセージダイジェストを計算します。

次の図は、1 つのメッセージ属性の MD5 メッセージダイジェストをエンコードする方法を示しています。

1 つの Amazon SQS メッセージ属性をエンコードするには

  1. 名前をエンコードします: 名前の長さ (4 バイト) および UTF-8 バイト。

  2. データ型をエンコードします: データ型の長さ (4 バイト) および UTF-8 バイト。

  3. 値 (1 バイト) の転送型 (String または Binary) をエンコードします。

    注記

    論理データ型 String および Number では、String 転送型が使用されます。

    論理データ型 Binary では、Binary 転送型が使用されます。

    1. String 転送型の場合、1 をエンコードします。

    2. Binary 転送型の場合、2 をエンコードします。

  4. 属性値をエンコードします。

    1. String 転送型の場合、属性値をエンコードします: 値の長さ (4 バイト) + UTF-8 バイト。

    2. Binary 転送型の場合、属性値をエンコードします: 値の長さ (4 バイト) + raw バイト。

Amazon SQS メッセージシステム属性

あなたが使えるのに対してメッセージ属性アプリケーションの Amazon SQS メッセージにカスタムメタデータをアタッチするには、メッセージシステム属性他のメタデータを格納するにはAWSなどのサービスAWS X-Ray。詳細については、「」を参照してください。MessageSystemAttributeの request パラメーターSendMessageそしてSendMessageBatchAPI アクション、AWSTraceHeaderの属性ReceiveMessageAPI アクション、およびMessageSystemAttributeValueでのデータ型Amazon Simple Queue Service API 参照

メッセージシステム属性は、メッセージ属性とまったく同じ構造ですが、次の例外があります。

  • 現在、サポートされているメッセージシステム属性は AWSTraceHeader のみです。そのデータ型は String であり、その値は正しくフォーマットされた AWS X-Ray トレースヘッダー文字列である必要があります。

  • メッセージシステム属性のサイズは、メッセージの合計サイズに対してはカウントされません。