CloudWatch コンソールでの Lambda 関数ログに対する「Log group does not exist」エラーを解決するための方法を教えてください。

最終更新日: 2021 年 4 月 14 日

Amazon CloudWatch コンソールで AWS Lambda 関数のログを表示しようとすると、「Log group does not exist」というエラーが表示されます。どうすればこのエラーを解決できますか?

簡単な説明

関数のログを表示しようとしたときに Lambda 関数のロググループがない場合、CloudWatch は次のエラーを返します。

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

ログは、初めて関数を実行した後に生成されます。関数を呼び出した後にロググループがない理由は、通常、関数の AWS Identity and Access Management (IAM) アクセス許可に問題があるからです。

CloudWatch から「Log group does not exist」エラーのトラブルシューティングを行うには、以下の事項を確認します。

  • Lambda 関数の実行ロールに CloudWatch にログを書き込むための十分なアクセス許可がある。
  • IAM ポリシーのロググループリソースに関数の名前が含まれている。

注: Lambda@Edge のアクセス許可に関連するログの問題については、「Lambda@Edge のサービスにリンクされたロール」を参照してください。

解決方法

IAM コンソールで、Lambda 関数の実行ロールの IAM ポリシーを確認および編集して、次の条件を満たします。

  • 書き込みアクション CreateLogGroup および CreateLogStream が許可されている。
    注: 関数にカスタムのアクセス許可が必要ない場合は、 AWSLambdaBasicExecutionRole 管理ポリシーをアタッチできます。この管理ポリシーでは、Lambda による CloudWatch へのログの書き込みが許可されます。
  • Amazon リソースネーム (ARN) で指定された AWS リージョンは、Lambda 関数のリージョンと同じである。
  • log-group リソースに Lambda 関数名が含まれている。たとえば、関数の名前が myLambdaFunction の場合、関連付けられた log-group/aws/lambda/myLambdaFunction です。

CloudWatch にログを書き込む Lambda 関数に必要なアクセス許可を含む JSON ポリシーの例

{
    "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:*"
            ]
        }
    ]
}

この記事はお役に立ちましたか?


請求に関するサポートまたは技術的なサポートが必要ですか?