如何在 Python Lambda 中设置分段(顶级)级别的 AWS Xray 注释

How to set segment (top) level AWS Xray annotations in Python Lambda

我在 Python v2 Lambda 中成功使用了 AWS Xray。 patch_all() 可以很好地为 Xray 自动修补我的一部分库,即 boto3。

我无法设置在较低级别的子分段中持续存在的高级注释。 lambda中的注解可以这样设置吗?如果不是,还应该如何设置?我尝试获取当前 subsegmentsegment.

import json
import re
import boto3
import logging
import sys

from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all

patch_all()

def lambda_handler(event, context):  
  subsegment_ref = xray_recorder.current_subsegment()
  subsegment_ref.put_annotation('account_id', 'foo')

Lambda 函数段不是由 X-Ray SDK 生成的。我们正在与 Lambda 团队合作以提供更好的体验,但目前没有解决方法来注释该段。

对于注释子段,您可以在处理程序中创建一个子段,然后向其添加注释。您可以查看用于创建自定义子分段的快速入门指南 https://github.com/aws/aws-xray-sdk-python

最简单的方法是使用上下文管理器样式:

with xray_recorder.in_subsegment('pick_a_subsegment_name') as subsegment:
        subsegment.put_annotation('key', 'value')