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:
- Abra o console do CloudFront.
- Em Telemetria, escolha Monitoramento.
- Escolha a guia Lambda@Edge.
- Selecione sua função Lambda@Edge e, em seguida, escolha Exibir métricas.
- 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.
- 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