Amazon Simple Notification Service
開発者ガイド (API バージョン 2010-03-31)

Amazon SNS メッセージと JSON の形式

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

HTTP/HTTPS ヘッダー

Amazon SNS が受信登録の確認、通知、または受信登録解除の確認メッセージを HTTP/HTTPS エンドポイントに送信するときは、Amazon SNS 固有の多くのヘッダー値とともに POST メッセージを送信します。これらのヘッダー値を使用すると、JSON メッセージ本文を解析して Type 値を読み取ることなく、メッセージタイプの識別などの操作を行うことができます。

x-amz-sns-message-type

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

x-amz-sns-message-id

共通のユニークな識別子。発行される各メッセージで一意です。再試行間に Amazon SNS が再送信する通知の場合、元のメッセージのメッセージ ID が使用されます。

x-amz-sns-topic-arn

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

x-amz-sns-subscription-arn

このエンドポイントへの受信登録の ARN。

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

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 メッセージです。

Message

メッセージについて説明する文字列。受信登録の確認の場合、この文字列は次のようになります。

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

共通のユニークな識別子。発行される各メッセージで一意です。再試行間に Amazon SNS が再送信するメッセージの場合、元のメッセージのメッセージ ID が使用されます。

Signature

Message、MessageId、Type、Timestamp、および TopicArn 値の Base64 エンコードされた "SHA1withRSA" 署名。

SignatureVersion

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

SigningCertURL

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

SubscribeURL

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

Timestamp

受信登録の確認が送信された日時 (GMT)。

Token

受信登録を確認するために ConfirmSubscription アクションで使用する値。または、SubscribeURL にアクセスできます。

TopicArn

このエンドポイントが受信登録しているトピックの Amazon リソースネーム (ARN)。

Type

メッセージのタイプ。受信登録の確認の場合、タイプは SubscriptionConfirmation です。

次の 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" : "2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e285d6ad02428b09ceece29417f1f02d609c582afbacc99c583a916b9981dd2728f4ae6fdb82efd087cc3b7849e05798d2d2785c03b0879594eeac82c01f235d0e717736", "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=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e285d6ad02428b09ceece29417f1f02d609c582afbacc99c583a916b9981dd2728f4ae6fdb82efd087cc3b7849e05798d2d2785c03b0879594eeac82c01f235d0e717736", "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 ドキュメントを含むメッセージ本文があります。

Message

通知がトピックに発行されたときに指定された Message の値。

MessageId

共通のユニークな識別子。発行される各メッセージで一意です。再試行間に Amazon SNS が再送信する通知の場合、元のメッセージのメッセージ ID が使用されます。

Signature

Message、MessageId、Subject (存在する場合)、Type、Timestamp、TopicArn 値の Base64 エンコードされた SHA1withRSA 署名。

SignatureVersion

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

SigningCertURL

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

Subject

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

Timestamp

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

TopicArn

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

Type

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

UnsubscribeURL

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

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

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" : "EXAMPLEw6JRNwm1LFQL4ICB0bnXrdB8ClRMTQFGBqwLpGbM78tJ4etTwC5zU7O3tS6tGpey3ejedNdOJ+1fkIp9F2/LmNVKb5aFlYq+9rk9ZiPph5YlLmWsDcyC5T+Sy9/umic5S0UQc2PEtgdpVBahwNOdMW4JPwk0kAJJztnc=", "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 メッセージです。

Message

メッセージについて説明する文字列。受信登録解除の確認の場合、この文字列は次のようになります。

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

共通のユニークな識別子。発行される各メッセージで一意です。再試行間に Amazon SNS が再送信するメッセージの場合、元のメッセージのメッセージ ID が使用されます。

Signature

Message、MessageId、Type、Timestamp、および TopicArn 値の Base64 エンコードされた "SHA1withRSA" 署名。

SignatureVersion

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

SigningCertURL

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

SubscribeURL

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

Timestamp

受信登録解除の確認が送信された日時 (GMT)。

Token

受信登録を再確認するために ConfirmSubscription アクションで使用できる値。または、SubscribeURL にアクセスできます。

TopicArn

このエンドポイントが受信登録を解除されたトピックの Amazon リソースネーム (ARN)。

Type

メッセージのタイプ。受信登録解除の確認の場合、タイプは UnsubscribeConfirmation です。

次の 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" : "2336412f37fb687f5d51e6e241d09c805a5a57b30d712f7948a98bac386edfe3e10314e873973b3e0a3c09119b722dedf2b5e31c59b13edbb26417c19f109351e6f2169efa9085ffe97e10535f4179ac1a03590b0f541f209c190f9ae23219ed6c470453e06c19b5ba9fcbb27daeb7c7", "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=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f7948a98bac386edfe3e10314e873973b3e0a3c09119b722dedf2b5e31c59b13edbb26417c19f109351e6f2169efa9085ffe97e10535f4179ac1a03590b0f541f209c190f9ae23219ed6c470453e06c19b5ba9fcbb27daeb7c7", "Timestamp" : "2012-04-26T20:06:41.581Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEHXgJmXqnqsHTlqOCk7TIZsnk8zpJJoQbr8leD+8kAHcke3ClC4VPOvdpZo9s/vR9GOznKab6sjGxE8uwqDI9HwpDm8lGxSlFGuwCruWeecnt7MdJCNh0XK4XQCbtGoXB762ePJfaSWi9tYwzW65zAFU04WkNBkNsIf60=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem" }

SetSubscriptionAttributes 配信ポリシーの JSON 形式

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

http://sns.us-east-1.amazonaws.com/ ?Action=SetSubscriptionAttributes &SubscriptionArn=arn%3Aaws%3Asns%3Aus-east-1%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 } }

SetSubscriptionAttribute アクションの詳細については、『Amazon Simple Notification Service API Reference』の「SetSubscriptionAttributes」を参照してください。

SetTopicAttributes 配信ポリシーの JSON 形式

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

http://sns.us-east-1.amazonaws.com/ ?Action=SetTopicAttributes &TopicArn=arn%3Aaws%3Asns%3Aus-east-1%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 } } }

SetTopicAttribute アクションの詳細については、Amazon Simple Notification Service API Reference の「SetTopicAttributes」を参照してください。