Amazon SNS メッセージ形式の解析 - Amazon Simple Notification Service

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

Amazon SNS メッセージ形式の解析

Amazon では、次の形式SNSを使用します。

HTTP/HTTPS ヘッダー

Amazon SNSがサブスクリプションの確認、通知、またはサブスクリプション解除の確認メッセージを HTTP/HTTPS エンドポイントに送信すると、Amazon SNS固有のヘッダー値が多数含まれたPOSTメッセージを送信します。メッセージ本文を解析して値を読み取ることなく、JSONメッセージタイプを識別するなどのタスクにヘッダーType値を使用できます。デフォルトでは、Amazon SNSは を に設定してすべての通知を HTTP/S エンドポイントContent-Typeに送信しますtext/plain; charset=UTF-8。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の 。

次のHTTPPOSTヘッダーは、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しません

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

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証明書への 。

次のHTTPPOSTメッセージは、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 がサブスクライブされた HTTPまたはHTTPSエンドポイントに通知SNSを送信すると、エンドポイントに送信されるPOSTメッセージ本文には、次の名前と値のペアを持つJSONドキュメントが含まれます。

Type

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

MessageId

発行される各メッセージに固有のユニバーサル一意識別子 (UUID)。再試行中に Amazon SNS が再送信する通知には、元のメッセージのメッセージ ID が使用されます。

TopicArn

このメッセージが公開されたトピックの Amazon リソースネーム (ARN)。

Subject

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

注記

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

Message

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

Timestamp

通知が発行された時刻 (GMT)。

SignatureVersion

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

  • SignatureVersion1 の場合、 Signatureは 、MessageSubject (存在する場合)MessageId、、TypeTimestampおよび TopicArn値の Base64-encodedSHA1withRSA署名です。

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

Signature

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

SigningCertURL

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

UnsubscribeURL

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

次のHTTPPOSTメッセージは、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証明書への 。

次のHTTPPOSTメッセージは、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パラメータを の値に設定する場合DeliveryPolicyAttributeValueパラメータの値は有効な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パラメータを の値に設定する場合DeliveryPolicyAttributeValueパラメータの値は有効な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 配信ポリシーの作成