У меня есть приложение Flask, работающее как лямбда-функция AWS, развернутое с Zappa, и я хочу активировать X-Ray для получения дополнительной информации о различных функциях.
Активировать X-Ray с помощью Zappa было достаточно просто -требуется только добавить эту строку в zappa-settings.json:
"xray_tracing": true
Далее я установил AWS X-Ray Python SDK и добавил несколько декораторов для некоторых функций, напримерthis:
@xray_recorder.capture()
Когда я развертываю это как лямбда-функцию, все это работает хорошо.Проблема заключается в использовании системы локально, как при выполнении тестов, так и при запуске Flask на локальном сервере, а не в качестве лямбда-функции.
Когда я использую любую из функций, которые оформлены либо в тесте, либо черезНа локальном сервере выдается следующее исключение:
aws_xray_sdk.core.exceptions.exceptions.SegmentNotFoundException: cannot find the current segment/subsegment, please make sure you have a segment open
Что, конечно, имеет смысл, поскольку AWS Lambda обрабатывает создание сегментов.
Есть ли хорошие способы деактивировать захват на месте?Это было бы полезно, например, для локального запуска модульных тестов функций, которые я хотел бы посмотреть в X-Ray.