Passer au contenu

Pourquoi mes journaux CloudWatch Lambda@Edge ne sont-ils pas livrés ?

Lecture de 3 minute(s)
0

J'ai associé une fonction AWS Lambda@Edge à une distribution Amazon CloudFront. Cependant, je ne trouve pas les journaux de la fonction Lambda@Edge dans le flux de journaux Amazon CloudWatch Logs.

Résolution

Vérifier l'autorisation pour le rôle IAM associé à la fonction Lambda@Edge

Si le rôle Gestion des identités et des accès AWS (AWS IAM) associé à la fonction Lambda@Edge ne dispose pas des autorisations requises, les journaux Lambda@Edge ne sont pas renseignés. Vérifiez que le rôle de fonction dispose des autorisations requises pour créer des groupes et des flux de journaux et placer les événements de journal dans n'importe quelle région AWS.

Exemple de politique IAM :

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

Pour plus d'informations sur les autorisations requises pour envoyer des données à CloudWatch Logs, consultez la section Configuration des autorisations et des rôles IAM pour Lambda@Edge.

Localiser les journaux dans la région où CloudFront invoque la fonction Lambda

Confirmez la région dans la console CloudFront. Si vous avez utilisé la région incorrecte, il est possible que les journaux ne s'affichent pas.

Lorsque vous appelez la fonction Lambda@Edge, Lambda crée des flux de journaux CloudWatch Logs dans la région où la demande a été reçue. Le nom du groupe de journaux utilise le format suivant : /aws/lambda/us-east-1.function-name.

Pour localiser les journaux de la fonction Lambda@Edge, recherchez la région dans laquelle CloudFront invoque la fonction. Procédez comme suit :

  1. Ouvrez la console CloudFront.
  2. Sous Télémétrie, choisissez Surveillance.
  3. Choisissez l'onglet Lambda@Edge.
  4. Sélectionnez votre fonction Lambda@Edge, puis choisissez Afficher les métriques.
  5. Sélectionnez Afficher les journaux de fonction, puis sélectionnez la région dans laquelle CloudFront invoque la fonction.
    Remarque : Si vous constatez des erreurs dans une région, sélectionnez-la dans le graphique de métriques Erreurs.
  6. Pour vérifier l'emplacement périphérique où CloudFront a acheminé la requête, vérifiez la valeur d'en-tête de la réponse x-amz-cf-pop. Vérifiez ensuite la région correspondante dans CloudWatch Logs pour consulter les fichiers journaux. Par exemple, si x-amz-cf-pop est IAD89-P1, IAD est le code aéroport et CloudFront a répondu à la requête dans us-east-1.

Si Lambda renvoie une réponse non valide à CloudFront, CloudFront journalise les messages d'erreur dans les fichiers journaux. CloudFront publie ensuite ces journaux dans CloudWatch Logs dans la région où la fonction Lambda a été exécutée. Les groupes de journaux utilisent le format suivant : /aws/cloudfront/LambdaEdge/DistributionId. Pour localiser la région dans laquelle se trouve le fichier journal CloudWatch Logs, consultez la section Déterminer la région Lambda@Edge.

Informations connexes

Rapports, métriques et journaux

Déterminer si votre compte transmet les journaux à CloudWatch

AWS OFFICIELA mis à jour il y a un an