如何在 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中的注解可以这样设置吗?如果不是,还应该如何设置?我尝试获取当前 subsegment
和 segment
.
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')
我在 Python v2 Lambda 中成功使用了 AWS Xray。 patch_all()
可以很好地为 Xray 自动修补我的一部分库,即 boto3。
我无法设置在较低级别的子分段中持续存在的高级注释。 lambda中的注解可以这样设置吗?如果不是,还应该如何设置?我尝试获取当前 subsegment
和 segment
.
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')