如何解決 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 中的日誌群組不存在錯誤進行疑難排解,請確認下列內容:

  • 您的 Lambda 函數的執行角色具有足夠的許可,可將日誌寫入 CloudWatch。
  • IAM 政策中的日誌群組資源包含您的函數名稱。

**注意:**如需有關 Lambda@Edge 的許可相關日誌記錄問題的資訊,請參閱 Lambda@Edge 的服務連結角色

解決方法

IAM 主控台中,檢閱並編輯 Lambda 函數執行角色的 IAM 政策,以使下列事項屬實:

  • 允許寫入動作 CreateLogGroup 和 CreateLogStream
    **注意:**如果您的函數不需要自訂許可,您可以連接受管政策 AWSLambdaBasicExecutionRole。此受管政策允許 Lambda 將日誌寫入 CloudWatch。
  • Amazon Resource Name (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 許可

AWS 官方
AWS 官方已更新 3 年前