Шаблон сопоставления шлюза API: $ context.xrayTraceId всегда пуст - PullRequest
1 голос
/ 08 мая 2020

На моей сцене включено отслеживание рентгеновских лучей, и я вижу, что X-Amzn-Trace-Id возвращается из шлюза API, кроме того, я могу видеть всю трассировку от APIG до Dynamo db. Я хотел бы сохранить этот идентификатор трассировки в таблице, чтобы мы могли отлаживать его более эффективно, но когда я отображаю интеграцию типа

 "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"
        }

    }

, Xray всегда пуст! Как я могу получить этот идентификатор?

1 Ответ

0 голосов
/ 14 мая 2020

Хорошо, похоже, что решение из документации aws не работает, однако идентификатор Xray присутствует в заголовках, поэтому мы можем сделать

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

, и это работает!

...