Pourquoi les journaux CloudTrail Lambda@Edge ne sont-ils pas livrés ?

Lecture de 4 minute(s)
0

J'ai associé une fonction AWS Lambda@Edge à une distribution Amazon CloudFront en tant que déclencheur. Les journaux d'exécution de la fonction Lambda@Edge dans Amazon CloudWatch sont absents du flux de journaux AWS CloudTrail. Comment puis-je déterminer la cause de leur absence ?

Les journaux Lambda@Edge sont absents si le rôle AWS Identity and Access Management (IAM) associé à la fonction Lambda@Edge ne dispose pas de l'autorisation requise. Les journaux peuvent également apparaître manquants si vous vérifiez la mauvaise région à partir de la console.

Solution

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

Vérifiez que le rôle d'exécution de la 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. La livraison des journaux échouera si le rôle d'exécution associé à la fonction Lambda ne dispose pas des autorisations requises.

Voici un exemple de politique IAM associée au rôle d'exécution Lambda@Edge :

{
  "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 aux journaux CloudWatch, consultez la section Définition des autorisations et des rôles IAM pour Lambda@Edge.

Vérifier les journaux de la région dans laquelle la fonction Lambda a été activée

Lorsque la fonction Lambda@Edge est activée, Lambda crée des flux de journaux CloudWatch dans la région AWS la plus proche de l'emplacement où la fonction est activée. Le nom du groupe de journaux est formaté comme suit /aws/lambda/us-east-1.function-name, où function-name est le nom de la fonction Lambda.

Pour localiser les journaux de la fonction Lambda@Edge, vous devez déterminer la ou les régions depuis lesquelles la fonction est appelée, puis afficher les journaux.

Pour trouver la région dans laquelle la fonction a été appelée :

  1. Connectez-vous à la console de gestion AWS et ouvrez la console CloudFront.
  2. Choisissez Surveillance dans la catégorie Télémétrie.
  3. Sélectionnez l'onglet Lambda@Edge.
  4. Sélectionnez la fonction Lambda@Edge, puis Afficher les métriques de fonction.

À partir de la page de surveillance, nous pouvons maintenant voir depuis quelles régions nos fonctions de réplica sont appelées pendant une période spécifique. À partir de là, nous pouvons trouver les journaux CloudWatch pour notre fonction dans chaque région. Pour ce faire, sélectionnez Afficher les journaux de la fonction, puis sélectionnez la région dans laquelle la fonction est appelée.

Remarque : si vous constatez des erreurs dans une région particulière, choisissez la région affichant les erreurs en question dans le graphique. Pour en savoir plus, reportez-vous à Identification de la région Lambda@Edge.

Ou, pour déterminer l'emplacement périphérique vers lequel la demande a été acheminée, vérifiez la valeur de l'en-tête de la réponse x-amz-cf-pop. Ensuite, vérifiez la région correspondante dans CloudWatch pour voir les fichiers journaux. Par exemple, si x-amz-cf-pop est défini sur IAD89-P1, cela indique que la demande a été traitée dans la région us-east-1 où IAD est le code de l'aéroport.

Lorsque Lambda renvoie une réponse non invalide à CloudFront, CloudFront transmet les messages d'erreur écrits dans les fichiers journaux. CloudFront les transmet ensuite vers la région CloudWatch où la fonction Lambda s'est exécutée. Les groupes de journaux ont le format suivant : /aws/cloudfront/LambdaEdge/DistributionId, où DistributionId est l'ID de la distribution. Pour trouver la région dans laquelle se trouve le fichier journal CloudWatch, consultez Identification de la région Lambda@Edge.


Informations connexes

Définition des autorisations et des rôles IAM pour Lambda@Edge

Métriques et journaux CloudWatch pour les fonctions Lambda@Edge

Déterminer si votre compte transmet les journaux à CloudWatch

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans