【发布时间】:2021-09-04 22:37:00
【问题描述】:
我正在尝试使用 boto3 获取 cloudwatch 查询,但我收到了 ResourceNotFoundException。
import boto3
if __name__ == "__main__":
client = boto3.client('logs')
response = client.start_query(
logGroupName='/aws/lambda/My-Stack-Name-SE349DJ',
startTime=123,
endTime=123,
queryString="fields @message",
limit=1
)
我尝试了上面的代码。错误信息如下。
botocore.errorfactory.ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the StartQuery operation: Log group '/aws/lambda/My-Stack-Name-SE349DJ' does not exist for account ID '11111111' (Service: AWSLogs; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: xxxxx-xxxx-xxx; Proxy: null)
我测试的内容如下。
- 日志组存在。我在 aws 控制台上使用 Logs Insights 对其进行了测试。我还在按原样粘贴日志组后进行了测试。
- 我添加了一个反斜杠来测试“/”是否有问题(例如“/aws/lambda/My-Stack-Name-SE349DJ”)并出现
InvalidParameterException。 - aws 帐户在日志组中具有管理访问权限。
- 我在使用 aws cli 进行测试时收到了相同的错误消息。
An error occurred (ResourceNotFoundException) when calling the StartQuery operation: Log group 'XXXXXXXXXXXXXX' does not exist for account ID '11111111' (Service: AWSLogs; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: xxxxx-xxxx-xxx; Proxy: null)
我该如何解决这个问题?
实际上我之所以尝试这样做是因为我需要从过滤后的日志组中获取超过 500,000 条数据,但最多 10,000 条。我认为最好通过更改开始时间和结束时间来将其拉出。 有很大可能是某个时间数据太多,所以我觉得用boto3比直接运行更好。有没有一种简单的方法可以从控制台或其他方法中提取超过 500,000 条数据?
【问题讨论】:
-
也许地区不同?
-
@Marcin 谢谢你,你是对的。我在创建客户端之前添加了这些行。
my_config = Config( region_name = 'us-east-2', ) client = boto3.client('logs', config=my_config)
标签: amazon-web-services amazon-cloudwatch