Amazon SNS メッセージの配信ステータス - Amazon Simple Notification Service

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

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,AWSSoftware Development Kit (SDK)、またはクエリ API を使用します。

AWS Management Console を使用した配信ステータスのログ記録の設定

  1. Amazon SNS コンソールにサインインします。

  2. ナビゲーションパネルで、[トピック] を選択します。

  3. [トピック] ページで、トピックを選択して [編集] を選択します。

  4. リポジトリの []編集MyTopicページで、[] を展開します。配信ステータスのロギングセクションに追加します。

  5. 配信ステータスをログに記録するプロトコルを選択します (例:AWS Lambda

  6. 「」と入力します。成功サンプルレート(CloudWatch Logs Logs を受信する成功したメッセージの割合)。

  7. IAM; ロールセクションで、次のいずれかを実行します。

    • アカウントから既存のサービスロールを選択するには、[Use existing service role (既存のサービスロールを使用)] を選択して成功および失敗した配信の IAM ロールを指定します。

    • アカウントに新しいサービスを作成するには、[Create new service role (新しいサービスロールを作成)]、[Create new roles (新しいロールの作成)] の順に選択して、IAM コンソールで成功および失敗した配信の IAM ロールを定義します。

      Amazon SNS への書き込みアクセス許可をお客様に代わって CloudWatch Logs を使用するよう、Amazon SNS に付与するには、[許可

  8. [変更を保存] をクリックします。

    これで、メッセージの配信ステータスがある CloudWatch Logs を表示して解析できるようになりました。CloudWatch の使用方法の詳細については、『』を参照してください。CloudWatch のドキュメント

Amazon SNS エンドポイントにサブスクライブしたトピックのメッセージ配信ステータス属性を設定するAWSSDK

-AWSSDKAmazon SNS でメッセージの配信ステータス属性を使用するための API をいくつかの言語で用意しています。

トピック属性

メッセージの配信ステータスには、次のトピック属性名の値を使用できます。

HTTP

  • HTTPSuccessFeedbackRoleArn

  • HTTPSuccessFeedbackSampleRate

  • HTTPFailureFeedbackRoleArn

Amazon Kinesis Data Firehose

  • FirehoseSuccessFeedbackRoleArn

  • FirehoseSuccessFeedbackSampleRate

  • FirehoseFailureFeedbackRoleArn

AWS Lambda

  • LambdaSuccessFeedbackRoleArn

  • LambdaSuccessFeedbackSampleRate

  • LambdaFailureFeedbackRoleArn

プラットフォームアプリケーションエンドポイント

  • ApplicationSuccessFeedbackRoleArn

  • ApplicationSuccessFeedbackSampleRate

  • ApplicationFailureFeedbackRoleArn

    注記

    Amazon SNS アプリケーションエンドポイントに送信される通知メッセージのメッセージ配信ステータスのトピックの属性を設定できることに加えて、プッシュ通知サービスに送信されるプッシュ通知メッセージの配信ステータスのアプリケーション属性を設定することもできます。詳細については、「メッセージの配信ステータスの Amazon SNS アプリケーション属性を使用する」を参照してください。

Amazon SQS

  • SQSSuccessFeedbackRoleArn

  • SQSSuccessFeedbackSampleRate

  • SQSFailureFeedbackRoleArn

-<ENDPOINT>SuccessFeedbackRoleArnおよび<ENDPOINT>FailureFeedbackRoleArn属性は、お客様に代わって CloudWatch Logs を使用するための Amazon SNS の書き込みアクセス許可をに付与するために使用します。<ENDPOINT>SuccessFeedbackSampleRate 属性は、成功した配信メッセージのサンプルレートの割合(0-100)を指定するためのものです。設定した後、<ENDPOINT>FailureFeedbackRoleArn属性がある場合、メッセージの配信に失敗すると、CloudWatch Logs が生成されます。

トピック属性を設定する AWS SDK の例

以下の例は、で提供されている Amazon SNS クライアントを使用してトピック属性を設定する方法を示します。AWSSDK

AWS SDK for Java

次の Java の例は、使用する方法を示しています。SetTopicAttributesAPI を使用して、Amazon SNS エンドポイントにサブスクライブしているトピックに送信された通知メッセージのメッセージ配信ステータスのトピックの属性を設定します。この例では、topicArnattribName、および attribValue に文字列値が設定されたことを前提としています。

final static String topicArn = ("arn:aws:sns:us-east-2:123456789012:MyTopic"); final static String attribName = ("LambdaSuccessFeedbackRoleArn"); final static String attribValue = ("arn:aws:iam::123456789012:role/SNSSuccessFeedback");
SetTopicAttributesRequest setTopicAttributesRequest = new SetTopicAttributesRequest(); setTopicAttributesRequest.withTopicArn(topicArn); setTopicAttributesRequest.setAttributeName(attribName); setTopicAttributesRequest.setAttributeValue(attribValue);

SDK for Java、「」を参照してください。の使用開始AWS SDK for Java

AWS SDK for .NET

次の .NET の例は、使用する方法を示しています。SetTopicAttributesAPI を使用して、Amazon SNS エンドポイントにサブスクライブしているトピックに送信された通知メッセージのメッセージ配信ステータスのトピックの属性を設定します。この例では、topicArnattribName、および attribValue に文字列値が設定されたことを前提としています。

static String topicArn = "arn:aws:sns:us-east-2:123456789012:MyTopic"; static String attribName = "LambdaSuccessFeedbackRoleArn"; String attribValue = "arn:aws:iam::123456789012:role/SNSSuccessFeedback";
SetTopicAttributesRequest setTopicAttributesRequest = new SetTopicAttributesRequest { TopicArn = topicArn, AttributeName = attribName, AttributeValue = attribValue };

の詳細については、「」を参照してください。AWSSDK for .NETの使用開始AWS.NET 対応 SDK