当web GUI显示更多时,Boto3(和AWS CLI)仅返回25个API网关自定义域



我只能想象我在这里做了一些愚蠢的事情,但我不知道是什么。AWS GUI显示。。嗯,我已经建立了很多自定义域。仔细观察,我估计大约有75个。当我通过Boto3库或AWS CLI进行查询时,它会稳定地返回25个(没有错误(,甚至更多。我使用Boto3尝试了以下操作:

session = boto3.session.Session(region_name="eu-west-1")
apigw = session.client('apigatewayv2')
print(apigw.get_domain_names()["Items"]) # Returns 25 items
print(apigw.get_domain_names(MaxResults="1000")["Items"]) # Also returns 25 items

类似地,我使用CLI尝试了以下调用:

aws apigatewayv2 get-domain-names

aws apigatewayv2 get-domain-names --max-items=1000

需要明确的是,我肯定在此帐户的API网关中设置了超过25个域名。我已经反复检查过了。

有人能帮我理解我打电话给服务部门做错了什么吗?

许多boto3客户端api调用都有内置的限制,您很可能会遇到这种情况。有时这些限制没有记录在案。如果要收回所有项,则应使用分页器。如果一个函数有一个相应的分页器,那么这肯定表明客户端调用有限制。您可以使用令牌与客户端一起自己对事物进行分页,但分页器可以为您做到这一点,通常是更好的方法。

以下是相同调用的分页器语法:

paginator = client.get_paginator('get_domain_names')
response_iterator = paginator.paginate(
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)

你可能只是想打电话给

paginator = client.get_paginator('get_domain_names')
response_iterator = paginator.paginate()

MaxResults不会返回到您指定的数字似乎是错误的,但请查看本文中的讨论,这可能不是官方的,但仍然有助于解释行为:

maxResults是为此返回的最大项目数要求您可能会得到小于指定值的值。它只能保证你的结果不会超过100个。如果如果你没有得到所有的结果,那么你将得到一个nextToken另一个api调用。

相关内容

  • 没有找到相关文章

最新更新