Amazon Lambda 和 Amazon X-Ray - Amazon X-Ray
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Lambda 和 Amazon X-Ray

您可以使用 Amazon X-Ray 来跟踪您的 Amazon Lambda 函数。Lambda 运行 X-Ray 进程守护程序并使用有关函数调用和运行该函数的详细信息记录分段。如需进一步检测,您可以将 X-Ray 开发工具包与您的函数绑定,以便记录传出调用以及添加注释和元数据。

如果您的 Lambda 函数由另一个已检测服务调用,则 Lambda 会跟踪已采样的请求,无需任何额外配置。上游服务可以是经过检测的 Web 应用程序或另一个 Lambda 函数。您的服务可以使用经过检测的 Amazon SDK 客户端直接调用该函数,也可以使用经过检测的 HTTP 客户端调用 API Gateway API。

Amazon X-Ray 支持使用 Amazon Lambda 和 Amazon SQS 跟踪事件驱动的应用程序。使用 CloudWatch 控制台查看每个请求在 Amazon SQS 中排队并由下游 Lambda 函数处理的连接视图。来自上游消息生成者的跟踪会自动链接到来自下游 Lambda 使用者节点的跟踪,从而创建 end-to-end 应用程序视图。有关更多信息,请参阅跟踪事件驱动型应用程序

注意

如果您为下游 Lambda 函数启用了跟踪,则还必须为调用下游函数的根 Lambda 函数启用跟踪,以便下游函数生成跟踪。

如果您的 Lambda 函数按计划运行,或者由未检测的服务调用,您可以将 Lambda 配置为通过活动跟踪采样和记录调用。

在 Amazon Lambda 函数上配置 X-Ray 集成
  1. 打开Amazon Lambda 控制台

  2. 从左侧导航栏中,选择函数

  3. 选择您的函数。

  4. 在 “配置” 选项卡上,向下滚动到 “其他监控工具” 卡片。您也可以通过选择左侧导航窗格中的监控和操作工具来找到此卡片。

  5. 选择编辑

  6. Amazon X-Ray 下,启用活动跟踪

在运行时,通过对应的 X-Ray 开发工具包,Lambda 也运行 X-Ray 进程守护程序。

Lambda 上的 X-Ray 开发工具包
  • 适用于 Go 的 X-Ray 开发工具包 — Go 1.7 和更新版本的运行时

  • 适用于 Java 的 X-Ray 开发工具包 — Java 8 运行时

  • 适用于 Node.js 的 X-Ray 开发工具包 — Node.js 4.3 和更高版本的运行时

  • 适用于 Python 的 X-Ray 开发工具包 - Python 2.7、Python 3.6 和更新版本的运行时

  • 适用于.NET 的 X-Ray 开发工具包 — .NET Core 2.0 和更新版本的运行时

要在 Lambda 上使用 X-Ray 开发工具包,请在每次创建新版本时将其与您的函数代码绑定。您可以用检测运行在其他服务上的应用程序的相同方法来检测您的 Lambda 函数。主要差别在于您不使用开发工具包来检测传入请求、做出采样决策和创建分段。

检测 Lambda 函数和 Web 应用程序的另一个差别在于,Lambda 创建并发送到 X-Ray 的分段无法通过函数代码进行修改。您可以创建子分段并在其上记录注释和元数据,但无法将批注和元数据添加到父分段。

有关更多信息,请参阅 Amazon Lambda 开发人员指南中的使用 Amazon X-Ray