Comment puis-je résoudre l'erreur « Log group does not exist » pour les journaux de fonction Lambda dans la console CloudWatch ?

Lecture de 3 minute(s)
0

Lorsque je consulte les journaux de ma fonction AWS Lambda dans la console Amazon CloudWatch, l’erreur « Log group does not exist » s’affiche. Je souhaite résoudre l'erreur.

Brève description

S'il n'existe aucun groupe de journaux pour votre fonction Lambda lorsque vous consultez vos journaux de fonction, CloudWatch renvoie l'erreur suivante :

« Log group does not exist. The specific log group: <log group name> does not exist in this account or region. »

Les journaux sont générés la première fois que vous exécutez la fonction. S’il n’existe aucun groupe de journaux après l'invocation de la fonction, un problème est survenu avec les autorisations de gestion des identités et des accès (IAM) d'AWS de la fonction.

Pour résoudre une erreur Log group does not exist de CloudWatch, vérifiez ce qui suit :

  • Le rôle d'exécution de la fonction Lambda dispose d'autorisations suffisantes pour écrire des journaux dans CloudWatch.
  • La ressource du groupe de journaux dans la politique IAM inclut le nom de la fonction.

Remarque : Pour plus d'informations sur les problèmes de journalisation liés aux autorisations avec Lambda@Edge, consultez la section Rôles liés aux services pour Lambda@Edge.

Résolution

Remarque : La résolution suivante ne fonctionne pas pour les autorisations refusées de niveau supérieur, par exemple par le biais d'une stratégie de contrôle des services (SCP) ou d'une limite d’autorisations. Vous devez d'abord résoudre les autorisations refusées.

Modifiez la stratégie IAM pour le rôle d'exécution de la fonction Lambda afin d'inclure les éléments suivants :

  • Autorisez les actions d'écriture CreateLogGroup et CreateLogStream.
    Remarque : Si vous n'avez pas besoin d'autorisations personnalisées pour votre fonction, vous pouvez attacher la stratégie gérée AWSLambdaBasicExecutionRole pour permettre à Lambda d'écrire des journaux dans CloudWatch.
  • La région AWS spécifiée dans l'ARN est la même que la région de votre fonction Lambda.
  • La ressource log-group inclut le nom de la fonction Lambda. Par exemple, si la fonction s'appelle myLambdaFunction, le log-group associé est /aws/lambda/myLambdaFunction.

Vous trouverez ci-dessous un exemple de stratégie qui inclut les autorisations requises pour qu'un rôle Lambda puisse accéder aux journaux CloudWatch :

{  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Action": "logs:CreateLogGroup",  
      "Resource": "arn:aws:logs:region:accountId:*"  
    },  
    {  
      "Effect": "Allow",  
      "Action": [  
        "logs:CreateLogStream",  
        "logs:PutLogEvents"  
      ],  
      "Resource": [  
        "arn:aws:logs:region:accountId:log-group:/aws/lambda/functionName:*"  
      ]  
    }  
  ]  
}

Remarque : Assurez-vous d'ajouter le service Lambda dans la stratégie de confiance du rôle IAM :

{  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Principal": {  
        "Service": "lambda.amazonaws.com"  
      },  
      "Action": "sts:AssumeRole"  
    }  
  ]  
}

Informations connexes

Gestion des autorisations dans AWS Lambda

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 5 mois