选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

Amazon SNS 中的主动跟踪

聚焦模式
Amazon SNS 中的主动跟踪 - Amazon Simple Notification Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用于跟踪和分析用户通过您的亚马逊 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 控制台Amazon SNS SetTopicAttributes APIAmazon 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 传播到下游服务。

  1. 登录 Amazon SNS 控制台

  2. 选择一个主题或创建一个新主题。有关创建主题的详细信息,请参阅创建 Amazon SNS 主题

  3. 创建主题页面的详细信息部分,选择主题类型:FIFO标准

    1. 输入主题的名称

    2. (可选)输入主题的显示名称

  4. 展开 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 控制台来验证是否对您的主题启用了主动跟踪,或者资源策略是否添加失败。

  1. 登录 Amazon SNS 控制台

  2. 在左侧导航窗格中,选择主题

  3. Topics(主题)页上,选择一个主题。

  4. 请选择 Integrations(集成)选项卡。

    启用主动跟踪后,会显示绿色的 Active(活动)图标。

  5. 如果您启用了主动跟踪但没有看到资源策略已添加,请选择 Create policy(创建策略)以添加所需的额外权限。

屏幕截图显示了中名为 “SampleTopic” 的 Amazon SNS 主题的详细信息。 AWS Management Console它表示已为该主题启用 AWS X-Ray 主动跟踪,但缺少允许 Amazon SNS 发送跟踪数据的资源策略。提供了“创建策略”按钮来解决此问题。

测试主动跟踪

  1. 登录 Amazon SNS 控制台

  2. 创建 Amazon SNS 主题。有关如何执行该操作的详细信息,请参阅 要使用创建主题 AWS Management Console

  3. 展开 Active tracing(主动跟踪),然后选择 Use active tracing(使用主动跟踪)。

  4. 向 Amazon SNS 主题发布消息。有关如何执行该操作的详细信息,请参阅 要使用 AWS Management Console将消息发布到 Amazon SNS 主题

  5. 使用 X-Ray 服务地图查看该主题的 end-to-end跟踪和服务地图。

显示 AWS X-Ray 服务地图,其中显示了从客户端流向名为 “” 的 Amazon SNS 主题的请求的跟踪xray-topic。” 然后,消息将分发到各种下游服务,包括亚马逊 SQS 队列、Lambda 函数、Kinesis 消防水带和远程服务。每个连接都会显示诸如以毫秒(ms)为单位的延迟和每分钟交易速率(t/min)等指标,这有助于分析性能并识别消息传递过程中存在的任何延迟问题。
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。