Logs de funções de borda - Amazon CloudFront

Logs de funções de borda

É possível usar o Amazon CloudWatch Logs para obter logs para suas funções de borda, tanto do Lambda@Edge quanto do CloudFront Functions. Acesse 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 executadas. O nome do grupo de logs é formatado como /aws/lambda/us-east-1.function-name, em que function-name é o nome que você deu à função ao criá-la e us-east-1 é o código da Região da AWS na qual a função foi criada. O nome do grupo de logs sempre contém us-east-1, mesmo para grupos de outras regiões nas quais a função é executada.

nota

O Lambda@Edge controla os logs com base no volume da solicitação e no tamanho dos logs.

Você deve analisar os arquivos de log do CloudWatch na Região da AWS correta 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 AWS. Na mesma página, é possível selecionar uma região e, depois, visualizar os arquivos de log referentes a ela, para investigar problemas.

Para saber mais sobre como usar o CloudWatch Logs com funções do Lambda@Edge, consulte o seguinte:

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/FunctionName, em que FunctionName é o nome que você deu à função quando a criou. O nome do stream de log está no formato 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. Uma função vinculada a serviço é uma função do IAM que está vinculada diretamente a um produto da AWS. As funções vinculadas a serviços são predefinidas pelo serviço e incluem todas as permissões de que ele precisa para chamar outros serviços da AWS em seu nome. O CloudFront Functions usa uma função vinculada ao serviço chamada 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 um erro de execução, as informações são registradas nos logs padrão e nos logs em tempo real do CloudFront. As informações sobre o erro são registradas nos campos x-edge-result-type, x-edge-response-result-type e x-edge-detailed-result-type.