本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
用于跟踪和分析用户通过您的亚马逊 SNS 主题传递 AWS X-Ray 到亚马逊 Data Firehose、Amazon S AWS LambdaQS 和 HT TP/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 控制台SetTopicAttributes
API、Amazon Simple Notification Service CLI 参考或 AWS CloudFormation 为 Amazon SNS 主题启用 X-Ray。
要了解有关将 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。
使用控制台对 Amazon SNS 主题启用主动跟踪 AWS
在 Amazon SNS 主题上启用主动跟踪后,它会读取跟踪 ID,根据跟踪 ID 向客户发送数据,并将跟踪 ID 传播到下游服务。
登录 Amazon SNS 控制台
。 -
选择一个主题或创建一个新主题。有关创建主题的详细信息,请参阅创建 Amazon SNS 主题。
-
在创建主题页面的详细信息部分,选择主题类型:FIFO或标准。
-
输入主题的名称。
-
(可选)输入主题的显示名称。
-
-
展开 Active tracing(主动跟踪),然后选择 Use active tracing(使用主动跟踪)。
为亚马逊 SNS 主题启用 X-Ray 后,您可以使用 X-Ray 服务地图查看该主题的 end-to-end跟踪和服务地图。
使用软件开发工具包对 Amazon SNS 主题启用主动跟踪 AWS
以下代码示例展示了如何使用适用于 Java 的 S AWS DK 在 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 在 Amazon SNS 主题上启用主动跟踪 AWS
以下代码示例显示了如何使用 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 服务地图查看该主题的 end-to-end跟踪和服务地图。
