Как установить аннотации AWS Xray на верхнем уровне сегмента в Python Lambda - PullRequest
0 голосов
/ 02 мая 2019

Я успешно использую AWS Xray в Python v2 Lambda.patch_all() хорошо работает для автоматического исправления части моих библиотек, то есть boto3, для Xray.

Я не могу установить аннотации высокого уровня, которые сохраняются в подсегментах нижнего уровня.Можно ли настроить аннотации в лямбде следующим образом?Если нет, то как еще они должны быть установлены?Я пытался получить текущие subsegment и segment.

import json
import re
import boto3
import logging
import sys

from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all

patch_all()

def lambda_handler(event, context):  
  subsegment_ref = xray_recorder.current_subsegment()
  subsegment_ref.put_annotation('account_id', 'foo')

1 Ответ

1 голос
/ 03 мая 2019

Сегмент лямбда-функции не генерируется X-Ray SDK. Мы работаем с командой Lambda для обеспечения лучшего опыта, но в настоящее время нет обходного пути для аннотирования сегмента.

Для аннотирования подсегмента вы можете создать подсегмент внутри обработчика, а затем добавить к нему аннотацию. Вы можете ознакомиться с кратким руководством по началу работы https://github.com/aws/aws-xray-sdk-python для создания собственного подсегмента.

Самый простой способ - использовать стиль менеджера контекста:

with xray_recorder.in_subsegment('pick_a_subsegment_name') as subsegment:
        subsegment.put_annotation('key', 'value')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...