Amazon SNS メッセージ配信ステータス
Amazon SNS では、以下の Amazon SNS エンドポイントでトピックに送信された通知メッセージの配信ステータスをログに記録できます。
-
HTTP
-
Amazon Kinesis Data Firehose
-
AWS Lambda
-
プラットフォームアプリケーションエンドポイント
-
Amazon Simple Queue Service
メッセージの配信ステータスの属性を設定した後、トピックの受信者に送信されたメッセージのためにログエントリが CloudWatch Logs に送信されます。メッセージの配信ステータスを記録すると、以下のようにオペレーションをより把握することに役立ちます。
-
メッセージが Amazon SNS エンドポイントに配信されたかどうかを知ることができます。
-
Amazon SNS エンドポイントから Amazon SNS に送信された応答を識別します。
-
メッセージのドウェル時間 (発行のタイムスタンプから Amazon SNS エンドポイントへの配信直前までの時間) を決定します。
メッセージの配信ステータスのトピック属性を設定するには、AWS Management Console、AWS ソフトウェア開発キット (SDK)、またはクエリ API を使用できます。
トピック
AWS Management Console を使用した配信ステータスのログ記録を設定する
Amazon SNS コンソール
にサインインします。 -
ナビゲーションパネルで、[トピック] を選択します。
-
[トピック] ページで、トピックを選択して [編集] を選択します。
-
[Edit
MyTopic
] ページで、[Delivery status logging] セクションを展開します。 -
配信ステータスをログに記録するプロトコルを選択します (AWS Lambda など)。
-
[成功したサンプル率] (CloudWatch Logs を受信する成功したメッセージの割合) を入力します。
-
[IAM ロール] セクションで、次のいずれかの操作を行います。
-
アカウントから既存のサービスロールを選択するには、[既存のサービスロールを使用] を選択して成功および失敗した配信の IAM ロールを指定します。
-
アカウントに新しいサービスを作成するには、[新しいサービスロールを作成]、[新しいロールの作成] の順に選択して、IAM コンソールで成功および失敗した配信の IAM ロールを定義します。
[許可] を選択して、お客様に代わって CloudWatch Logs を使用する書き込みアクセス権を Amazon SNS に付与します。
-
-
[変更を保存] をクリックします。
これで、メッセージ配信ステータスを含む CloudWatch Logs を表示して解析できるようになりました。CloudWatch の使用方法の詳細については、「CloudWatch のドキュメント
」を参照してください。
AWS SDK を使用して、Amazon SNS エンドポイントにサブスクライブしたトピックのメッセージ配信ステータス属性を設定する
AWS SDK には、Amazon SNS でメッセージの配信ステータスの属性を使用するための API がいくつかの言語で用意されています。
トピック属性
メッセージの配信ステータスには、以下のトピック属性名の値を使用できます。
HTTP
-
HTTPSuccessFeedbackRoleArn
— HTTP エンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が成功したことを示します。 -
HTTPSuccessFeedbackSampleRate
— HTTP エンドポイントにサブスクライブされている Amazon SNS トピックについてサンプリングする、成功したメッセージの割合を示します。 -
HTTPFailureFeedbackRoleArn
— HTTP エンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が失敗したことを示します。
Amazon Kinesis Data Firehose
-
FirehoseSuccessFeedbackRoleArn
— Amazon Kinesis Data Firehose エンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が成功したことを示します。 -
FirehoseSuccessFeedbackSampleRate
— Amazon Kinesis Data Firehose エンドポイントにサブスクライブされている Amazon SNS トピックについてサンプリングする、成功したメッセージの割合を示します。 -
FirehoseFailureFeedbackRoleArn
— Amazon Kinesis Data Firehose エンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が失敗したことを示します。
AWS Lambda
-
LambdaSuccessFeedbackRoleArn
— Lambda エンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が成功したことを示します。 -
LambdaSuccessFeedbackSampleRate
— Lambda エンドポイントにサブスクライブされている Amazon SNS トピックについてサンプリングする、成功したメッセージの割合を示します。 -
LambdaFailureFeedbackRoleArn
— Lambda エンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が失敗したことを示します。
プラットフォームアプリケーションエンドポイント
-
ApplicationSuccessFeedbackRoleArn
— AWS アプリケーションエンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が成功したことを示します。 -
ApplicationSuccessFeedbackSampleRate
— AWS アプリケーションエンドポイントにサブスクライブされている Amazon SNS トピックについてサンプリングする、成功したメッセージの割合を示します。 -
ApplicationFailureFeedbackRoleArn
— AWS アプリケーションエンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が失敗したことを示します。注記
Amazon SNS アプリケーションエンドポイントに送信される通知メッセージのメッセージ配信ステータスのトピックの属性を設定できることに加えて、プッシュ通知サービスに送信されるプッシュ通知メッセージの配信ステータスのアプリケーション属性を設定することもできます。詳細については、「メッセージの配信ステータスの Amazon SNS アプリケーション属性を使用する」を参照してください。
Amazon SQS
-
SQSSuccessFeedbackRoleArn
— Amazon SQS エンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が成功したことを示します。 -
SQSSuccessFeedbackSampleRate
— Amazon SQS エンドポイントにサブスクライブされている Amazon SNS トピックについてサンプリングする、成功したメッセージの割合を示します。 -
SQSFailureFeedbackRoleArn
— Amazon SQS エンドポイントにサブスクライブされている Amazon SNS トピックのメッセージ配信が失敗したことを示します。
注記
<ENDPOINT>SuccessFeedbackRoleArn
および <ENDPOINT>FailureFeedbackRoleArn
属性は、お客様に代わって CloudWatch Logs を使用する書き込みアクセス許可を Amazon SNS に付与するために使用します。<ENDPOINT>SuccessFeedbackSampleRate
属性は、正常な配信メッセージのサンプルレートの割合 (0〜100) を指定するためのものです。<ENDPOINT>FailureFeedbackRoleArn
属性を設定した後は、メッセージの配信に失敗すると、必ず CloudWatch Logs が生成されます。
トピック属性を設定する AWS SDK の例
以下のコード例は、Amazon SNS トピック属性を設定する方法を示しています。