由于 ResourceNotFoundException,AWS 无法获取查询结果
AWS unable to get query result because of ResourceNotFoundException
我正在尝试使用 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账户在日志组中有administrate访问权限。
- 我在使用 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 运行 比直接运行 更好。有没有简单的方法可以从控制台或其他方法提取50万多条数据?
正如@Marcin 评论的那样,这是因为区域配置。
我在创建 aws 客户端之前添加了这些行。
from botocore.config import Config
...
my_config = Config(
region_name = 'us-east-2',
)
...
client = boto3.client('logs', config=my_config)
我正在尝试使用 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账户在日志组中有administrate访问权限。
- 我在使用 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 运行 比直接运行 更好。有没有简单的方法可以从控制台或其他方法提取50万多条数据?
正如@Marcin 评论的那样,这是因为区域配置。
我在创建 aws 客户端之前添加了这些行。
from botocore.config import Config
...
my_config = Config(
region_name = 'us-east-2',
)
...
client = boto3.client('logs', config=my_config)