Usar o AWS Lambda com o AWS X-Ray
Você pode usar o AWS X-Ray para visualizar os componentes do aplicativo, identificar gargalos de desempenho e solucionar problemas de solicitações que resultaram em um erro. Suas funções do Lambda enviam dados de rastreamento para o X-Ray, e o X-Ray processa os dados para gerar um mapa de serviço e resumos de rastreamento pesquisáveis.

Se você tiver habilitado o rastreamento do X-Ray em um serviço que invoca sua função, o Lambda enviará rastreamentos para o X-Ray automaticamente. O serviço upstream, como Amazon API Gateway, ou um aplicativo hospedado no Amazon EC2 que é instrumentado com o X-Ray SDK, analisa solicitações de entrada e adiciona um cabeçalho de rastreamento que informa ao Lambda para enviar rastreamentos ou não.
Para rastrear solicitações que não têm um cabeçalho de rastreamento, ative o rastreamento ativo na configuração da sua função.
Para ativar o rastreamento ativo
-
Abra a página Funções
do console do Lambda. -
Escolha uma função.
-
Escolha Configuration (Configuração) e Monitoring tools (Ferramentas de monitoramento).
-
Selecione Edit.
-
Em AWS X-Ray, habilite o Active tracing (Rastreamento ativo).
-
Escolha Save (Salvar).
O X-Ray tem um nível gratuito vitalício. Além do limite do nível gratuito, o X-Ray
cobra por armazenamento e recuperação de rastreamento. Para obter detalhes, consulte
Definição de preço do AWS X-Ray
Sua função precisa de permissão para carregar dados de rastreamento no X-Ray. Quando
você habilita o rastreamento ativo no console do Lambda, o Lambda adiciona as permissões
necessárias à função de execução da função. Caso contrário, adicione a política AWSXRayDaemonWriteAccess
O X-Ray aplica um algoritmo de amostragem para garantir que o rastreamento é eficiente, enquanto ainda fornece uma amostra representativa das solicitações que o seu aplicativo serviu. A regra de amostragem padrão é uma solicitação por segundo e 5% de solicitações adicionais. Esta taxa de amostragem não pode ser configurada para funções do Lambda.
No X-Ray, um rastreamento registra informações sobre uma solicitação que é processada por um ou mais serviços. Os serviços registram segmentos que contêm camadas de subsegmentos. O Lambda registra um segmento para o serviço do Lambda que lida com a solicitação
de invocação e um para o trabalho realizado pela função. O segmento de função vem
com subsegmentos para Initialization
, Invocation
e Overhead
.
O exemplo a seguir mostra um rastreamento com 2 segmentos. Ambos são chamados my-function, mas um é do tipo AWS::Lambda
e o outro é AWS::Lambda::Function
. O segmento de função é expandido para mostrar seus subsegmentos.

No Lambda, é possível usar o SDK do X-Ray para estender o subsegmento Invocation
com subsegmentos adicionais para anotações, metadados e chamadas downstream. Não
é possível acessar o segmento de função diretamente nem registrar trabalhos feitos
fora do escopo de chamada do manipulador.
Consulte os tópicos a seguir para obter uma introdução específica de uma linguagem ao rastreamento no Lambda:
Para obter uma lista completa de serviços que oferecem suporte à instrumentação ativa, consulte Serviços da AWS compatíveis no Guia do desenvolvedor do AWS X-Ray.
Seções
Permissões da função de execução
O Lambda precisa das seguintes permissões para enviar dados de rastreamento para o X-Ray. Adicione-as à função de execução da sua função.
Essas permissões estão incluídas na política gerenciada AWSXRayDaemonWriteAccess
O daemon do AWS X-Ray
Em vez de enviar dados de rastreamento diretamente para a API do X-Ray, o SDK do X-Ray usa um processo do daemon. O daemon do AWS X-Ray é um aplicativo que é executado no ambiente do Lambda e escuta o tráfego UDP que contém segmentos e subsegmentos. Ele armazena em buffer os dados recebidos e os grava no X-Ray em lotes, reduzindo a sobrecarga de processamento e memória necessária para rastrear invocações.
O tempo de execução do Lambda permite ao daemon até 3% da memória configurada da sua função ou 16 MB, o que for maior. Se sua função ficar sem memória durante a invocação, o tempo de execução encerrará o processo do daemon primeiro para liberar memória.
O processo do daemon é totalmente gerenciado pelo Lambda e não pode ser configurado pelo usuário. Todos os segmentos gerados por invocações de função são registrados na mesma conta que a função do Lambda. O daemon não pode ser configurado para redirecioná-los para nenhuma outra conta.
Para obter mais informações, consulte O daemon do X-Ray no Guia do desenvolvedor do X-Ray.
Habilitar o rastreamento ativo com a API do Lambda
Para gerenciar a configuração de rastreamento com a AWS CLI ou com o AWS SDK, use as seguintes operações de API:
O exemplo de comando da AWS CLI a seguir habilita o rastreamento ativo em uma função chamada my-function.
aws lambda update-function-configuration --function-name my-function \ --tracing-config Mode=Active
O modo de rastreamento faz parte da configuração específica da versão que é bloqueada quando você publica uma versão da função. Não é possível alterar o modo de rastreamento em uma versão publicada.
Habilitar o rastreamento ativo com o AWS CloudFormation
Para habilitar o rastreamento ativo em um recurso AWS::Lambda::Function
em um modelo do AWS CloudFormation, use a propriedade TracingConfig
.
exemplo function-inline.yml
Resources: function: Type: AWS::Lambda::Function Properties:
TracingConfig: Mode: Active
...
Para um recurso do Modelo de aplicativo sem servidor da AWS (AWS SAM) AWS::Serverless::Function
, use a propriedade Tracing
.
exemplo template.yml
Resources: function: Type: AWS::Serverless::Function Properties:
Tracing: Active
...