Zappa でデプロイされた AWS Lambda 関数として実行されている Flask アプリがあり、X-Ray をアクティブにしてさまざまな関数の詳細情報を取得したいと考えています。
Zappa で X-Ray を有効にするのは簡単でした。zappa-settings.json に次の行を追加するだけです。
"xray_tracing": true
さらに、AWS X-Ray Python SDKをインストールし、次のようにいくつかの関数にいくつかのデコレーターを追加しました。
@xray_recorder.capture()
これを Lambda 関数としてデプロイすると、すべてうまく機能します。問題は、テストを実行するときと、ラムダ関数としてではなくローカル サーバーで 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 で監視したい関数に対してローカルで単体テストを実行する場合などに役立ちます。