翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用して AWS X-Ray 、Amazon SNS トピックを Amazon Data Firehose、、AWS LambdaAmazon SQS、および HTTP/S エンドポイントサブスクリプションに渡すユーザーリクエストをトレースおよび分析します。
X-Ray では、各リクエストのend-to-endビューを取得できるため、次のことが可能になります。
-
Amazon SNS トピックを呼び出しているものと、サブスクリプションのダウンストリームにあるサービスを特定します。
-
次のようなレイテンシーを分析します。
-
処理前に Amazon SNS トピックに費やされた時間。
-
サブスクライブされた各エンドポイントの配信時間。
-
重要
多数のサブスクリプションがある Amazon SNS トピックはサイズ制限に達し、完全にトレースされない場合があります。トレースドキュメントのサイズ制限の詳細については、 AWS 「 全般のリファレンス」の「X 線サービスクォータ」を参照してください。
すでにトレースされているサービスから Amazon SNS API を呼び出すと、Amazon SNS は、API で X-Ray トレースが有効になっていなくてもトレースをパススルーします。
Amazon SNS は、標準トピックと FIFO トピックの両方で X-Ray トレースをサポートしています。Amazon SNS トピックの X-Ray を有効にするには、Amazon SNS コンソールSetTopicAttributes
API、Amazon Simple 通知サービス CLI リファレンス、または AWS CloudFormation を使用します。
Amazon SNS で X-Ray を使用する方法の詳細については、「 AWS X-Ray デベロッパーガイド」の「Amazon SNS と AWS X-Ray」を参照してください。
アクティブトレースのアクセス許可
Amazon SNS コンソールを使用する場合、Amazon SNS は Amazon SNS トピックが X-Ray を呼び出すために必要なアクセス許可を作成しようとします。Amazon SNS コンソールを使用するための十分なアクセス許可がない場合、この試行は拒否される可能性があります。詳細については、Amazon SNS での Identity and Access ManagementおよびAmazon SNS アクセスコントロールのケース例を参照してください。
CLI を使用するときは、アクセス許可を手動で設定する必要があります。これらのアクセス許可は、リソースポリシーを使用して設定されます。X-Ray で必要なアクセス許可を使用する方法の詳細については、「Amazon SNS と AWS X-Ray」を参照してください。
AWS コンソールを使用して Amazon SNS トピックでアクティブなトレースを有効にする
Amazon SNS トピックでアクティブトレースが有効になると、トレース ID を読み取り、トレース ID に基づいてデータをカスタマーに送信し、そのトレース ID をダウンストリームのサービスに伝播します。
Amazon SNS コンソール
にサインインします。 -
トピックを選択するか、新しいトピックを作成できます。トピックの作成の詳細については、「Amazon SNS のトピックの作成」を参照してください。
-
[トピックの作成] ページの [詳細] セクションで、[FIFO] または [標準] を選択します。
-
トピックの名前を入力します。
-
(オプション) トピックの表示名を入力します。
-
-
[Active tracing] (アクティブトレース) を展開し、[Use active tracing] (アクティブトレースを使用する) を選択します。
Amazon SNS トピックで X-Ray を有効にすると、X-Ray サービスマップを使用して、トピックのエンドツーエンドのトレースとサービス マップを表示できます。
AWS SDK を使用して Amazon SNS トピックでアクティブなトレースを有効にする
次のコード例は、 AWS SDK for Java を使用して Amazon SNS トピックでアクティブトレースを有効にする方法を示しています。
public static void enableActiveTracing(SnsClient snsClient, String topicArn) {
try {
SetTopicAttributesRequest request = SetTopicAttributesRequest.builder()
.attributeName("TracingConfig")
.attributeValue("Active")
.topicArn(topicArn)
.build();
SetTopicAttributesResponse result = snsClient.setTopicAttributes(request);
System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode() + "\n\nTopic " + request.topicArn()
+ " updated " + request.attributeName() + " to " + request.attributeValue());
} catch (SnsException e) {
System.err.println(e.awsErrorDetails().errorMessage());
}
}
CLI AWS を使用して Amazon SNS トピックでアクティブなトレースを有効にする
次のコード例は、 CLI AWS を使用して Amazon SNS トピックでアクティブトレースを有効にする方法を示しています。
aws sns set-topic-attributes \ --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic \ --attribute-name TracingConfig \ --attribute-value Active
を使用して Amazon SNS トピックでアクティブなトレースを有効にする AWS CloudFormation
次の AWS CloudFormation スタックは、Amazon SNS トピックでアクティブトレースを有効にする方法を示しています。
AWSTemplateFormatVersion: 2010-09-09 Resources: MyTopicResource: Type: 'AWS::SNS::Topic' Properties: TopicName: 'MyTopic' TracingConfig: 'Active'
トピックでアクティブトレースが有効になっていることを確認する
Amazon SNS コンソールを使用して、トピックでアクティブトレースが有効になっているかどうか、またはリソースポリシーの追加に失敗したかどうかを確認できます。
Amazon SNS コンソール
にサインインします。 -
左のナビゲーションペインで、[トピック] を選択します。
-
[Topics] (トピック) ページで、トピックを選択します。
-
[Integrations] (統合) タブを開きます。
アクティブトレースが有効になっている場合、[Active] (有効化) アイコンが表示されます。
-
アクティブトレースを有効にしているのにリソースポリシーが追加されていない場合は、[Create policy] (ポリシーの作成) を選択して必要なアクセス許可を追加します。

アクティブトレースのテスト
Amazon SNS コンソール
にサインインします。 -
Amazon SNS トピックを作成します。この操作の詳細については、「を使用してトピックを作成するには AWS Management Console」を参照してください。
-
[Active tracing] (アクティブトレース) を展開し、[Use active tracing] (アクティブトレースを使用する) を選択します。
-
Amazon SNS トピックにメッセージを発行します。この操作の詳細については、「AWS Management Consoleを使用してAmazon SNS トピックにメッセージを発行するには」を参照してください。
-
X-Ray サービスマップを使用して、トピックのエンドツーエンドトレースとサービスマップを表示します。
