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

cyr*_*yrf 19 amazon-web-services amazon-cloudwatch aws-cli

我正在尝试使用此 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
Run Code Online (Sandbox Code Playgroud)

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

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

Mic*_*ant 17

你的问题可能是地区。

原来它不是为 OP 准备的,但它可能是为您看这个问题准备的!

例如,我必须添加--region 'us-east-2'以修复从 CLI 调用时未找到日志组的类似问题


小智 16

当使用 GitBash 时,我必须转义 $ 因此你的:

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

会变成

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


cyr*_*yrf 7

问题是我的日志组在不同的帐户中。

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

aws logs describe-log-groups --log-group-name-prefix /aws/lambda/my
Run Code Online (Sandbox Code Playgroud)

当我意识到没有为我期望有很多日志组的前缀列出任何日志组,而其他前缀确实显示了一些日志组时,我意识到我需要使用不同的帐户。我利用 AWS CLI 配置文件通过以下用法访问该帐户:

aws logs describe-log-groups --profile prd --log-group-name-prefix /aws/lambda/my
Run Code Online (Sandbox Code Playgroud)

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

因此,获取我需要的日志的修复应该是:

aws logs get-log-events --profile prd --cli-input-json file://cli-get-log-events.json
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到以下错误:

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

此错误消息有一个值得一提的解决方案: AWS Cloudwatch 日志流名称无法识别

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

我最后的用法是:

aws logs get-log-events --cli-input-json file://cli-get-log-events.json --profile prd > logs-xyz.json
Run Code Online (Sandbox Code Playgroud)