Sua função Lambda está lenta e você não tem ideia de qual parte está causando isso. O X-Ray rastreia cada invocação, mostra as conexões do mapa de serviços e detalha onde o tempo está sendo gasto. É a diferença entre adivinhar e saber.
TL;DR: Adicione rastreamento AWS X-Ray a uma função Lambda Python para obter traces distribuídos e insights de performance.
Stack: AWS Lambda, AWS X-Ray, Python, aws-xray-sdk
Nível: Intermediário
Tempo de leitura: ~5 min
Instalar dependências
pip install botocore boto3 aws-xray-sdk
Instrumentar a Lambda
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all
patch_all() # Auto-instrumenta boto3, requests e outras libs suportadas
def lambda_handler(event, context):
# Seu código Lambda aqui
pass
O patch_all() intercepta chamadas boto3, requisições HTTP e outras bibliotecas suportadas automaticamente, então cada chamada downstream vira um subsegmento no trace sem código extra.
Habilitar X-Ray na Lambda
No console da Lambda, vá em Configuration, depois “Monitoring and operations tools”, e habilite “Active tracing.” Esse é o switch que diz à Lambda para anexar um trace X-Ray a cada invocação.
O que você construiu
Rastreamento X-Ray habilitado na sua Lambda e instrumentado com o SDK Python. Os traces agora aparecerão no console do X-Ray mostrando mapas de serviços, detalhamento de latência e timing dos subsegmentos para cada invocação.
Próximos passos
- Crie subsegmentos personalizados com xray_recorder.begin_subsegment(“db-query”) para rastrear chamadas individuais ao banco dentro da Lambda.
- Habilite X-Ray no seu API Gateway para obter traces de ponta a ponta desde a requisição HTTP pela Lambda até os serviços downstream.
- Configure regras de amostragem no X-Ray para reduzir volume e custo de traces em ambientes de alto tráfego, mantendo traces completos para casos de erro.
Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.