AWS日志:指定的日志组不存在。

27

我试图使用这个CLI命令从Cloudwatch中获取日志:

cat cli-get-log-events.json    
{
    "logGroupName": "/aws/lambda/my-group", 
    "logStreamName": "2019/03/30/[$LATEST]dec1626296d84819be42f2ef615f292e", 
    "startTime": 1553977650000, 
    "endTime": 1553977748000, 
    "limit": 10, 
    "startFromHead": true
}


aws logs get-log-events --cli-input-json file://cli-get-log-events.json

但是我在响应中看到了这个错误:

调用GetLogEvents操作时发生错误(ResourceNotFoundException):指定的日志组不存在。


你也尝试过使用FilterLogEvents API了吗? - Arka Mukherjee
6个回答

27

你的问题可能是区域设置引起的。

事实证明,这不是针对原帖作者的问题,但看到这个问题时,它可能与您有关!

例如,当从CLI调用时,如果遇到类似日志组未找到的问题,则需要添加--region 'us-east-2'来解决。


15

在使用GitBash时,我必须转义$符号,因此您的:

"logStreamName": "2019/03/30/[$LATEST]dec162....

将变成

"logStreamName": "2019/03/30/[\$LATEST]dec162....


这对我有用,使用zsh。 - quickdraw
谢谢,那是我的愚蠢错误。 - Christophe Vidal

9

问题在于我的日志组位于不同的账户中。

当我尝试列出以相同前缀开头的所有日志组时,例如使用“my”而不是“my-lambda”,我才意识到了问题所在:

aws logs describe-log-groups --log-group-name-prefix /aws/lambda/my

当我意识到预期有许多日志组的前缀没有列出任何日志组,并且其他前缀确实显示了一些日志组时,我意识到我需要使用另一个帐户。我利用AWS CLI配置文件来访问该帐户,具体方法如下:

aws logs describe-log-groups --profile prd --log-group-name-prefix /aws/lambda/my

然后我看到了许多预期的日志组,在正确的账户中证实了它们的存在。

因此,获取我需要的日志的解决方法应该是:

aws logs get-log-events --profile prd --cli-input-json file://cli-get-log-events.json

很遗憾,我收到了以下错误信息:

调用GetLogEvents操作时出错(ResourceNotFoundException):指定的日志流不存在。

关于这个错误信息,有一个值得一提的解决方案在这里: AWS Cloudwatch日志流名称不被识别

但是在我的情况下,我认为我只是复制了错误的日志流名称。我再次从控制台中获取了该流的名称,并将其粘贴到cli输入文件中。

我的最终使用方式是:

aws logs get-log-events --cli-input-json file://cli-get-log-events.json --profile prd > logs-xyz.json

3

在通过AWS控制台检查日志时,我收到了这个错误。

我的Lambda脚本在VPC内的私有子网中运行。

将"AWSLambdaVPCAccessExecutionRole"权限添加到Lambda角色中解决了我的问题。


1
我最终发现日志组名称与日志流名称相关联。
awslocal logs get-log-events --log-group-name /aws/lambda/my-function --log-stream-name 2021/02/03/[LATEST]6b0a3c3f

可以。下一个语句说日志组名称不存在,所以我认为可能是 aws cli 或 awslocal 出现了错误。

awslocal logs get-log-events --log-group-name /aws/lambda/my-function --log-stream-name fakename

1

我也遇到了这个错误。问题是在添加S3触发器后,我立即上传了文件,但Lambda根本没有被触发。要创建日志组,Lambda函数至少需要被触发一次。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接