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....
问题是我的日志组在不同的帐户中。
当我尝试列出以公共前缀开头的所有日志组时,我能够意识到我的问题,例如,我使用了“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)
| 归档时间: |
|
| 查看次数: |
28588 次 |
| 最近记录: |