Amazon web services API网关映射模板:$context.xrayTraceId始终为空

Amazon web services API网关映射模板:$context.xrayTraceId始终为空,amazon-web-services,aws-api-gateway,aws-xray,Amazon Web Services,Aws Api Gateway,Aws Xray,我的舞台启用了X射线跟踪,我可以看到X-Amzn-Trace-Id从API网关返回,而且,我可以看到从APIG到Dynamo db的整个跟踪。我想将这个跟踪id保存到表中,这样我们可以更高效地调试它,但是当我映射一个集成时 "TableName" : "${aws_dynamodb_table.openApi_staging.id}", "Item": { "RequestId": { "S": "$context.requestId"

我的舞台启用了X射线跟踪,我可以看到X-Amzn-Trace-Id从API网关返回,而且,我可以看到从APIG到Dynamo db的整个跟踪。我想将这个跟踪id保存到表中,这样我们可以更高效地调试它,但是当我映射一个集成时

 "TableName" : "${aws_dynamodb_table.openApi_staging.id}",
    "Item": {
        "RequestId": {
            "S": "$context.requestId"
            },
        "Request": {
            "S": "$input.path('$')"
            },
        "RequestedAt": {
            "S": "$context.requestTime"
            },
        "Status":{
            "S": "New"
            },
        "Xray": {
          "S": "_$context.xrayTraceId"
        }

    }

X光总是空的!如何获得该id?

好的,aws文档中的解决方案似乎不起作用,但是标题中存在X射线id,所以我们可以这样做

 "Xray": {
          "S": "$method.request.header.X-Amzn-Trace-Id"
        }

这就行了

好的,aws文档中的解决方案似乎不起作用,但是标题中有X射线id,所以我们可以这样做

 "Xray": {
          "S": "$method.request.header.X-Amzn-Trace-Id"
        }

这就行了

是下划线吗?为什么是“$context.xrayTraceId”而不是“$context.xrayTraceId”?其他值如requestid set是否正确?在那里加下划线只是因为我需要将某个g传递给dynamo,它不支持空值。下划线是什么?为什么是“$context.xrayTraceId”而不是“$context.xrayTraceId”?其他值如requestid set是否正确?在那里加下划线只是因为我需要将某个g传递给dynamo,它不支持空值