如何解决AWS X-Ray和StepFunctions->无法获取TraceHeader
我想跟踪我的Stepfunction的特定执行情况。
我100%启用了X射线作为我的步进功能,并为其授予了完全访问权限。
我用boto3创建了一个lambda,该boto3描述了给定executionArn的执行。
问题是响应不完整!它没有给我traceHeader。 (https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/stepfunctions.html)
我的Lambda代码:
import json
import boto3
import pprint
import botocore
def lambda_handler(event,context):
clientStepFunction = boto3.client('stepfunctions')
try:
response = clientStepFunction.describe_execution(executionArn="execArn...")
pprint.pprint(response)
except clientStepFunction.exceptions.ExecutionDoesNotExist:
print("Error Execution doesn't exists")
except clientStepFunction.exceptions.InvalidArn:
print("Error invalid arn")
return {
'statusCode': 200,'body': json.dumps('Hello from Lamerarara!')
}
我很漂亮地打印了响应:
{'ResponseMetadata': {...},'executionArn': 'execArn','input': '{\n "IsHelloWorldExample": true\n}','name': 'execName','output': '[{\n'
' "IsHelloWorldExample": true\n'
'},{\n'
' "IsHelloWorldExample": true\n'
'}]','startDate': datetime.datetime(2020,10,16,13,21,6,724000,tzinfo=tzlocal()),'stateMachineArn': 'stepMachineArn','status': 'SUCCEEDED','stopDate': datetime.datetime(2020,191000,tzinfo=tzlocal())}
谢谢!
解决方案:
最后,它是boto3的版本。当前aws上的boto3版本不是最新的。您需要boto3 1.15+才能获取traceHeader
解决方法
您是否尝试过遵循此sample来添加X射线patch_all()
以便在Lambda中启用AWS sdk工具?也不要忘记添加依赖项aws-xray-sdk
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。