Por que meus logs do Lambda@Edge CloudWatch não são entregues?

3 minuto de leitura
0

Eu associei uma função do AWS Lambda@Edge a uma distribuição do Amazon CloudFront. No entanto, não consigo encontrar os logs da função Lambda@Edge no stream de logs do Amazon CloudWatch Logs.

Resolução

Verifique a permissão para o perfil do IAM associada à função Lambda@Edge

Se o perfil do AWS Identity and Access Management (AWS IAM) associada à função Lambda@Edge não tiver as permissões necessárias, os logs do Lambda@Edge não serão preenchidos. Verifique se o perfil tem as permissões necessárias para criar grupos de logs e streams e colocar eventos de log em qualquer região da AWS.

Exemplo de política do IAM:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:*"
            ]
        }
    ]
}

Para obter mais 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.

Localize os logs na região em que o CloudFront invoca a função do Lambda

Confirme a região no console do CloudFront. Se você usou a região incorreta, talvez não veja os logs.

Quando você invoca a função Lambda@Edge, o Lambda cria fluxos de log do CloudWatch Logs na região em que a solicitação foi recebida. O nome do grupo de logs usa o seguinte formato: /aws/lambda/us-east-1.function-name.

Para localizar os logs da função Lambda@Edge, encontre a região em que o CloudFront invoca a função. Conclua as etapas a seguir:

  1. Abra o console do CloudFront.
  2. Em Telemetria, escolha Monitoramento.
  3. Escolha a guia Lambda@Edge.
  4. Selecione sua função Lambda@Edge e, em seguida, escolha Exibir métricas.
  5. Selecione Exibir logs da função e, em seguida, selecione a região em que o CloudFront invoca a função.
    Observação: se você vir erros em uma região, selecione essa região no grafo métrico de Erros.
  6. Para verificar o local da borda em que o CloudFront roteou a solicitação, verifique o valor do cabeçalho da resposta x-amz-cf-pop. Em seguida, verifique a região correspondente no CloudWatch Logs para revisar os arquivos de log. Por exemplo, se x-amz-cf-pop for IAD89-P1, IAD será o código do aeroporto e o CloudFront atendeu à solicitação na região us-east-1.

Se o Lambda retornar uma resposta inválida ao CloudFront, o CloudFront registrará as mensagens de erro nos arquivos de log. Em seguida, o CloudFront publica esses logs no CloudWatch Logs na região em que a função do Lambda foi executada. Os grupos de log usam o seguinte formato: /aws/cloudfront/LambdaEdge/DistributionId. Para localizar a região onde é possível encontrar o arquivo de log do CloudWatch Logs, consulte Determinar a região do Lambda@Edge.

Informações relacionadas

Relatórios, métricas e logs

Determine se sua conta envia logs para o CloudWatch

AWS OFICIAL
AWS OFICIALAtualizada há 2 meses