Lorsque j'essaie d'afficher les journaux de ma fonction AWS Lambda dans la console Amazon CloudWatch, une erreur « Log group does not exist » (Le groupe de journaux n'existe pas) s'affiche. Comment puis-je corriger ce problème ?
Brève description
S'il n'y a pas de groupe de journaux pour la fonction Lambda lorsque vous essayez d'afficher les journaux de votre 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 uniquement après la première exécution de la fonction. S'il n'y a pas de groupe de journaux après l'appel de la fonction, c'est généralement en raison d’un problème avec les autorisations AWS Identity and Access Management (IAM) de la fonction.
Pour résoudre l'erreur Le groupe de journaux n'existe pas de CloudWatch, confirmez ce qui suit :
- Le rôle d'exécution de votre fonction Lambda dispose d'autorisations suffisantes pour écrire des journaux dans CloudWatch.
- La ressource du groupe de journaux dans la stratégie IAM inclut le nom de votre fonction.
Remarque : pour les problèmes de journalisation liés aux autorisations avec Lambda@Edge, consultez Rôles liés à un service pour Lambda@Edge.
Solution
Dans la console IAM, vérifiez et modifiez la politique IAM pour le rôle d'exécution de la fonction Lambda afin que les conditions suivantes soient remplies :
- Les actions d'écriture CreateLogGroup et CreateLogStream sont autorisées.
Remarque : si vous n'avez pas besoin d'autorisations personnalisées pour votre fonction, vous pouvez attacher la politique gérée AWSLambdaBasicExecutionRole. Cette stratégie gérée permet à Lambda d'écrire des journaux dans CloudWatch.
- La région AWS spécifiée dans l'Amazon Resource Name (ARN) est identique à celle de votre fonction Lambda.
- Le ressource log-group contient le nom de votre fonction Lambda. Par exemple, si votre fonction s'appelle myLambdaFunction, la ressource log-group associée est /aws/lambda/myLambdaFunction.
Vous trouverez ci-dessous un exemple de politique 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:*"
]
}
]
}
Informations connexes
Autorisations AWS Lambda