メッセージ形式を解析する - Amazon Simple Notification Service

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

メッセージ形式を解析する

Amazon SNS では以下の形式が使用されます。

HTTP/HTTPS ヘッダー

Amazon SNS がサブスクリプションの確認、通知、またはサブスクリプション解除の確認メッセージを HTTP/HTTPS エンドポイントに送信するときは、Amazon SNS 固有の多くのヘッダー値とともに POST メッセージを送信します。ヘッダー値を使用すると、JSON メッセージ本文を解析して Type 値を読み取ることなく、メッセージタイプの識別などのタスクを実行できます。デフォルトでは、Amazon SNS は、Content-Typetext/plain; charset=UTF-8 に設定されている HTTP/S エンドポイントにすべての通知を送信します。text/plain (デフォルト) 以外の Content-Type を選択するには、「HTTP/S 配信ポリシーの作成」の「headerContentType」を参照してください。

x-amz-sns-message-type

メッセージのタイプ。指定できる値は、SubscriptionConfirmationNotification および UnsubscribeConfirmation です。

x-amz-sns-message-id

発行するメッセージごとの汎用一意識別子 (UUID)。再試行間に Amazon SNS が再送信する通知の場合、元のメッセージのメッセージ ID が使用されます。

x-amz-sns-topic-arn

このメッセージの発行先トピックの Amazon リソースネーム (ARN)。

x-amz-sns-subscription-arn

このエンドポイントへのサブスクリプションの ARN。

次の HTTP POST ヘッダーは、HTTP エンドポイントへの Notification メッセージのヘッダーの例です。

POST / HTTP/1.1 x-amz-sns-message-type: Notification x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55 Content-Length: 1336 Content-Type: text/plain; charset=UTF-8 Host: myhost.example.com Connection: Keep-Alive User-Agent: Amazon Simple Notification Service Agent

HTTP/HTTPS サブスクリプションの確認の JSON 形式

HTTP/HTTPS エンドポイントをサブスクライブすると、Amazon SNS は HTTP/HTTPS エンドポイントにサブスクリプションの確認メッセージを送信します。このメッセージには、サブスクリプションを確認するためにアクセスする必要がある SubscribeURL 値が含まれています (または、Token 値を ConfirmSubscription で使用できます)。

注記

サブスクリプションが確認されるまで、Amazon SNS はこのエンドポイントに通知を送信しません。

サブスクリプションの確認メッセージは、以下の名前と値のペアを持つ JSON ドキュメントを含むメッセージ本文がある POST メッセージです。

Type

メッセージのタイプ。サブスクリプションの確認の場合、タイプは SubscriptionConfirmation です。

MessageId

発行するメッセージごとの汎用一意識別子 (UUID)。再試行間に Amazon SNS が再送信するメッセージの場合、元のメッセージのメッセージ ID が使用されます。

Token

サブスクリプションを確認するために ConfirmSubscription アクションで使用できる値。または、SubscribeURL にアクセスしても構いません。

TopicArn

このエンドポイントがサブスクライブしているトピックの Amazon リソースネーム (ARN)。

Message

メッセージについて説明する文字列。サブスクリプションの確認の場合、この文字列は以下のようになります。

You have chosen to subscribe to the topic arn:aws:sns:us-east-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.
SubscribeURL

サブスクリプションを確認するためにアクセスする必要がある URL。または、代わりに TokenConfirmSubscription アクションで使用してサブスクリプションを確認することもできます。

Timestamp

サブスクリプションの確認が送信された日時 (GMT)

SignatureVersion

使用される Amazon SNS 署名のバージョン

  • SignatureVersion1 である場合、SignatureMessageMessageIdTypeTimestampTopicArn の各値の Base64 でエンコードされた SHA1withRSA シグネチャです。

  • SignatureVersion2 である場合、SignatureMessageMessageIdTypeTimestampTopicArn の各値の Base64 でエンコードされた SHA256withRSA シグネチャです。

Signature

MessageMessageIdTypeTimestampTopicArn の各値の BaseBase64 でエンコードされた SHA1withRSA または SHA256withRSA シグネチャ。

SigningCertURL

メッセージの署名に使用された証明書の URL

次の HTTP POST メッセージは、HTTP エンドポイントへの SubscriptionConfirmation メッセージの例です。

POST / HTTP/1.1 x-amz-sns-message-type: SubscriptionConfirmation x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic Content-Length: 1336 Content-Type: text/plain; charset=UTF-8 Host: myhost.example.com Connection: Keep-Alive User-Agent: Amazon Simple Notification Service Agent { "Type" : "SubscriptionConfirmation", "MessageId" : "165545c9-2a5c-472c-8df2-7ff2be2b3b1b", "Token" : "2336412f37...", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Message" : "You have chosen to subscribe to the topic arn:aws:sns:us-west-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.", "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37...", "Timestamp" : "2012-04-26T20:45:04.751Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEpH+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0Ad8L10Hs3zH81mtnPk5uvvolIC1CXGu43obcgFxeL3khZl8IKvO61GWB6jI9b5+gLPoBc1Q=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem" }

HTTP/HTTPS 通知の JSON 形式

Amazon SNS がサブスクライブしている HTTP または HTTPS エンドポイントに通知を送信すると、エンドポイントに送信される POST メッセージには、以下の名前と値のペアを持つ JSON ドキュメントを含むメッセージ本文があります。

Type

メッセージのタイプ。通知の場合、タイプは Notification です。

MessageId

発行するメッセージごとの汎用一意識別子 (UUID)。再試行間に Amazon SNS が再送信する通知の場合、元のメッセージのメッセージ ID が使用されます。

TopicArn

このメッセージの発行先トピックの Amazon リソースネーム (ARN)。

Subject

通知をトピックに発行したときに指定した Subject パラメータ。

注記

このパラメータはオプションです。Subject を指定しなかった場合、この名前と値のペアは、この JSON ドキュメントに表示されません。

Message

通知をトピックに発行したときに指定した Message 値。

Timestamp

通知が公開されたときの日時 (GMT)。

SignatureVersion

使用される Amazon SNS 署名のバージョン

  • SignatureVersion1 である場合、SignatureMessageMessageIdSubject (存在する場合)、TypeTimestampTopicArnTopicArn の各値の Base64 でエンコードされた SHA1withRSA シグネチャです。

  • SignatureVersion2 である場合、SignatureMessageMessageIdSubject (存在する場合)、TypeTimestampTopicArn の各値の Base64 でエンコードされた SHA256withRSA シグネチャです。

Signature

MessageMessageIdSubject (存在する場合)、TypeTimestampTopicArn の各値の Base64 でエンコードされた SHA1withRSA または SHA256withRSA シグネチャ。

SigningCertURL

メッセージの署名に使用された証明書の URL

UnsubscribeURL

このトピックからエンドポイントのサブスクリプションを解除するために使用できる URL。この URL にアクセスすると、Amazon SNS はエンドポイントのサブスクリプションを解除し、このエンドポイントへの通知の送信を停止します。

次の HTTP POST メッセージは、HTTP エンドポイントへの Notification メッセージの例です。

POST / HTTP/1.1 x-amz-sns-message-type: Notification x-amz-sns-message-id: 22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324 x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96 Content-Length: 773 Content-Type: text/plain; charset=UTF-8 Host: myhost.example.com Connection: Keep-Alive User-Agent: Amazon Simple Notification Service Agent { "Type" : "Notification", "MessageId" : "22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Subject" : "My First Message", "Message" : "Hello world!", "Timestamp" : "2012-05-02T00:54:06.655Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEw6JRN...", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96" } }

HTTP/HTTPS サブスクリプションの解除の JSON 形式

HTTP/HTTPS エンドポイントのサブスクリプションがトピックから解除されると、Amazon SNS はエンドポイントにサブスクリプションの確認メッセージを送信します。

サブスクリプション解除の確認メッセージは、次の名前と値のペアを持つ JSON ドキュメントを含むメッセージ本文がある POST メッセージです。

Type

メッセージのタイプ。サブスクリプション解除の確認の場合、タイプは UnsubscribeConfirmation です。

MessageId

発行するメッセージごとの汎用一意識別子 (UUID)。再試行間に Amazon SNS が再送信するメッセージの場合、元のメッセージのメッセージ ID が使用されます。

Token

サブスクリプションを再確認するために ConfirmSubscription アクションで使用できる値。または、SubscribeURL にアクセスしても構いません。

TopicArn

このエンドポイントがサブスクリプションを解除されたトピックの Amazon リソースネーム (ARN)。

Message

メッセージについて説明する文字列。サブスクリプション解除の確認の場合、この文字列は次のようになります。

You have chosen to deactivate subscription arn:aws:sns:us-east-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.
SubscribeURL

サブスクリプションを再確認するためにアクセスする必要がある URL。または、代わりに TokenConfirmSubscription アクションで使用してサブスクリプションを再確認することもできます。

Timestamp

サブスクリプション解除の確認が送信された日時 (GMT)。

SignatureVersion

使用される Amazon SNS 署名のバージョン

  • SignatureVersion1 である場合、SignatureMessageMessageIdTypeTimestampTopicArn の各値の Base64 でエンコードされた SHA1withRSA シグネチャです。

  • SignatureVersion2 である場合、SignatureMessageMessageIdTypeTimestampTopicArn の各値の Base64 でエンコードされた SHA256withRSA シグネチャです。

Signature

MessageMessageIdTypeTimestampTopicArn の各値の BaseBase64 でエンコードされた SHA1withRSA または SHA256withRSA シグネチャ。

SigningCertURL

メッセージの署名に使用された証明書の URL

次の HTTP POST メッセージは、HTTP エンドポイントへの UnsubscribeConfirmation メッセージの例です。

POST / HTTP/1.1 x-amz-sns-message-type: UnsubscribeConfirmation x-amz-sns-message-id: 47138184-6831-46b8-8f7c-afc488602d7d x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55 Content-Length: 1399 Content-Type: text/plain; charset=UTF-8 Host: myhost.example.com Connection: Keep-Alive User-Agent: Amazon Simple Notification Service Agent { "Type" : "UnsubscribeConfirmation", "MessageId" : "47138184-6831-46b8-8f7c-afc488602d7d", "Token" : "2336412f37...", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Message" : "You have chosen to deactivate subscription arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.", "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37fb6...", "Timestamp" : "2012-04-26T20:06:41.581Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEHXgJm...", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem" }

SetSubscriptionAttributes 配信ポリシーの JSON 形式

SetSubscriptionAttributes アクションにリクエストを送信し、AttributeName パラメータを DeliveryPolicy の値に設定する場合、AttributeValue パラメータの値は有効な JSON のオブジェクトである必要があります。例えば、次の例では、配信ポリシーを合計 5 回の再試行に設定します。

http://sns.us-east-2.amazonaws.com/ ?Action=SetSubscriptionAttributes &SubscriptionArn=arn%3Aaws%3Asns%3Aus-east-2%3A123456789012%3AMy-Topic%3A80289ba6-0fd4-4079-afb4-ce8c8260f0ca &AttributeName=DeliveryPolicy &AttributeValue={"healthyRetryPolicy":{"numRetries":5}} ...

AttributeValue パラメータの値には、次の JSON 形式を使用します。

{ "healthyRetryPolicy" : { "minDelayTarget" : int, "maxDelayTarget" : int, "numRetries" : int, "numMaxDelayRetries" : int, "backoffFunction" : "linear|arithmetic|geometric|exponential" }, "throttlePolicy" : { "maxReceivesPerSecond" : int }, "requestPolicy" : { "headerContentType" : "text/plain | application/json | application/xml" } }

SetSubscriptionAttribute アクションの詳細については、「Amazon Simple Notification Service API リファレンス」の「SetSubscriptionAttributes」を参照してください。サポートされている HTTP コンテンツタイプヘッダーの詳細については、「HTTP/S 配信ポリシーの作成」を参照してください。

SetTopicAttributes 配信ポリシーの JSON 形式

SetTopicAttributes アクションにリクエストを送信し、AttributeName パラメータを DeliveryPolicy の値に設定する場合、AttributeValue パラメータの値は有効な JSON オブジェクトである必要があります。例えば、次の例では、配信ポリシーを合計 5 回の再試行に設定します。

http://sns.us-east-2.amazonaws.com/ ?Action=SetTopicAttributes &TopicArn=arn%3Aaws%3Asns%3Aus-east-2%3A123456789012%3AMy-Topic &AttributeName=DeliveryPolicy &AttributeValue={"http":{"defaultHealthyRetryPolicy":{"numRetries":5}}} ...

AttributeValue パラメータの値には、次の JSON 形式を使用します。

{ "http" : { "defaultHealthyRetryPolicy" : { "minDelayTarget": int, "maxDelayTarget": int, "numRetries": int, "numMaxDelayRetries": int, "backoffFunction": "linear|arithmetic|geometric|exponential" }, "disableSubscriptionOverrides" : Boolean, "defaultThrottlePolicy" : { "maxReceivesPerSecond" : int }, "defaultRequestPolicy" : { "headerContentType" : "text/plain | application/json | application/xml" } } }

SetTopicAttribute アクションの詳細については、「Amazon Simple Notification Service API リファレンス」のSetTopicAttributesにアクセスしてください。サポートされている HTTP コンテンツタイプヘッダーの詳細については、「HTTP/S 配信ポリシーの作成」を参照してください。