我正在尝试通过以下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):指定的日志组不存在。
答案 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):指定的日志流不存在。
但就我而言,我认为我只是复制了错误的日志流名称。我再次从控制台获取流的名称,并将其粘贴到我的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”权限为我解决了这个问题。