aws日志:指定的日志组不存在

时间:2019-03-30 22:33:24

标签: amazon-web-services aws-cli amazon-cloudwatch

我正在尝试通过以下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):指定的日志组不存在。

4 个答案:

答案 0 :(得分:3)

您的问题可能是该地区。

事实证明,这不是针对OP的,但可能适合您查看此问题!

例如,我必须添加--region 'us-east-2'来解决从CLI调用时找不到的类似日志组问题

答案 1 :(得分:1)

问题是我的日志组位于另一个帐户中。

当我尝试列出所有以公共前缀开头的日志组时,我能够意识到自己的问题,例如而不是“ my-lambda”,我使用“ my”:

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):指定的日志流不存在。

此错误消息的解决方案可在以下位置找到: Problem

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

我的最终用法是:

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

答案 2 :(得分: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

答案 3 :(得分:0)

我在通过 AWS 控制台检查日志时收到此错误。

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

向 Lambda 角色添加“AWSLambdaVPCAccessExecutionRole”权限为我解决了这个问题。