Logs de funções de borda
É possível usar o Amazon CloudWatch Logs para obter logs para as funções de borda, tanto do Lambda@Edge quanto do CloudFront Functions. É possível acessar os logs usando o console do CloudWatch ou a API do CloudWatch Logs.
Importante
Recomendamos que você use os logs para compreender a natureza das solicitações do seu conteúdo, não como uma contabilidade completa de todas as solicitações. O CloudFront entrega logs de função de borda com base no melhor esforço. A entrada do log de uma solicitação específica pode ser entregue muito depois do processamento da solicitação e, raramente, nunca ser entregue. Quando uma entrada de log for omitida dos logs de função de borda, o número de entradas nos logs não corresponderá ao uso exibido nos relatórios de uso e faturamento da AWS.
Logs do Lambda@Edge
O Lambda@Edge envia logs de função para o CloudWatch Logs automaticamente, criando fluxos de logs nas Regiões da AWS onde as funções são invocadas. Ao criar ou modificar uma função no AWS Lambda, você pode usar o nome padrão do grupo de logs do CloudWatch ou personalizá-lo.
-
O nome do grupo de logs está no formato
/aws/lambda/
, em que<FunctionName>
é o nome que você deu à função quando a criou. Ao enviar logs ao CloudWatch, o Lambda@Edge adicionará automaticamente o prefixo<FunctionName>
us-east-1
ao nome da função, de modo que o nome do grupo de logs seja/aws/lambda/us-east-1.
Esse prefixo corresponde à Região da AWS local em que a função foi criada. Esse prefixo permanece como parte do nome do grupo de logs, mesmo em outras regiões em que a função é invocada.<FunctionName>
-
Se você especificar um nome de grupo de logs personalizado, como
/
, o Lambda@Edge não adicionará o prefixo da região. O nome do grupo de logs permanece o mesmo em todas as outras regiões em que a função é invocada.MyLogGroup
nota
Se você criar um grupo de logs personalizado e especificar o mesmo nome padrão /aws/lambda/
, o Lambda@Edge adicionará o prefixo <FunctionName>
us-east-1
ao nome da função.
Além de permitir personalizar o nome do grupo de logs, as funções do Lambda@Edge aceitam logs no formato de texto simples e JSON, além de filtragem em nível de log. Para obter mais informações, consulte Configurar controles avançados de registro em log para funções do Lambda no Guia do desenvolvedor do AWS Lambda.
nota
O Lambda@Edge controla os logs com base no volume da solicitação e no tamanho dos logs.
Você deve revisar os arquivos de log do CloudWatch na região correta da para ver os arquivos de log da função do Lambda@Edge. Para ver as regiões onde a função do Lambda@Edge está em execução, visualize os grafos das métricas da função no console do CloudFront. As métricas são exibidas para cada região da . Na mesma página, é possível selecionar uma região e, depois, visualizar os arquivos de log referentes a ela, para investigar problemas.
Consulte mais informações sobre como usar o CloudWatch Logs com funções do Lambda@Edge nos seguintes tópicos:
-
Para obter mais informações sobre como visualizar gráficos na seção Monitoring (Monitoramento) no console do CloudFront, consulte Monitorar métricas do CloudFront com o Amazon CloudWatch.
-
Para informações sobre as permissões necessárias para enviar dados para o CloudWatch Logs, consulte Configurar permissões e perfis do IAM para o Lambda@Edge.
-
Para obter informações sobre como adicionar registro em log a uma função do Lambda@Edge, consulte Registro em log da função do AWS Lambda em Node.js ou Registro em log da função do AWS Lambda em Python no Guia do desenvolvedor do AWS Lambda.
-
Para obter informações sobre as cotas do CloudWatch Logs (anteriormente conhecidas como limites), consulte Cotas do CloudWatch Logs no Guia do usuário do Amazon CloudWatch Logs.
Logs do CloudFront Functions
Se o código de uma função do CloudFront contiver instruções console.log()
, o CloudFront Functions enviará automaticamente essas linhas de log para o CloudWatch Logs. Se não houver instruções console.log()
, nada será enviado para o CloudWatch Logs.
O CloudFront Functions sempre cria streams de log na região Leste dos EUA (Norte da Virgínia) (us-east-1
), independentemente de qual local da borda executou a função. O nome do grupo de logs está no formato /aws/cloudfront/function/
, em que <FunctionName>
é o nome que você deu à função quando a criou. O nome do stream de log está no formato <FunctionName>
YYYY/M/D/
.UUID
Abaixo, é possível visualizar uma mensagem de log de exemplo enviada ao CloudWatch Logs. Cada linha começa com um ID que identifica exclusivamente uma solicitação do CloudFront. A mensagem começa com uma linha START
que inclui o ID de distribuição do CloudFront e termina com uma linha END
. Entre as linhas START
e END
estão as linhas de log geradas pelas instruções console.log()
na função.
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== START DistributionID: E3E5D42GADAXZZ
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== Example function log output
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== END
nota
O CloudFront Functions envia logs ao CloudWatch apenas para funções na fase LIVE
que são executadas em resposta a solicitações e respostas de produção. Quando você testa uma função, o CloudFront não envia métricas nem logs para o CloudWatch. A saída de teste contém informações sobre erros, utilização de computação e logs de funções (instruções console.log()
), mas essas informações não são enviadas para o CloudWatch.
O CloudFront Functions usa uma função vinculada ao serviço do AWS Identity and Access Management (IAM) para enviar logs para o CloudWatch Logs em sua conta. Um perfil vinculado ao serviço é um perfil do IAM que está vinculado diretamente a um AWS service (Serviço da AWS). Os perfis vinculados a serviços são predefinidos pelo serviço e incluem todas as permissões que o serviço exige para chamar outros Serviços da AWS para você. O CloudFront Functions usa o perfil vinculado ao serviço chamado AWSServiceRoleForCloudFrontLogger. Para obter mais informações sobre essa função, consulte Funções vinculadas ao serviço para o Lambda@Edge (O Lambda@Edge usa a mesma função vinculada ao serviço).
Quando uma função falha com um erro de validação ou de execução, as informações são registradas nos logs padrão e nos logs em tempo real. Consulte informações específicas sobre o erro nos campos x-edge-result-type
, x-edge-response-result-type
e x-edge-detailed-result-type
.