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

所要時間1分
0

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 です。

**Lambda ロールが 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:*"
            ]
        }
    ]
}

関連情報

AWS Lambda permissions

AWS公式
AWS公式更新しました 3年前
コメントはありません

関連するコンテンツ