Python 3.x Boto3缺少几个apigateway使用计划

Python 3.x Boto3缺少几个apigateway使用计划,python-3.x,amazon-web-services,aws-api-gateway,boto3,Python 3.x,Amazon Web Services,Aws Api Gateway,Boto3,我通过Boto3在AWS中获得了我所有使用计划的列表,并注意到我缺少了几个与应有的使用计划相比的使用计划。具体来说,Boto3认为有25个计划,而awscli计数39(这是AWS控制台中显示的数字)。下面是我用于获取特定设置的使用计划的代码: Python文件: import boto3 session = boto3.session.Session(profile_name='myprofile') plans = session.client('apigateway').get_usage

我通过
Boto3
在AWS中获得了我所有使用计划的列表,并注意到我缺少了几个与应有的使用计划相比的使用计划。具体来说,
Boto3
认为有25个计划,而
awscli
计数39(这是AWS控制台中显示的数字)。下面是我用于获取特定设置的使用计划的代码:

Python文件:

import boto3

session = boto3.session.Session(profile_name='myprofile')
plans = session.client('apigateway').get_usage_plans()
print(len(plans.get('items')))
运行该文件将返回以下内容:

$ python3 getplans.py
25
$ aws apigateway get-usage-plans --profile myprofile | jq '.items | length'
39
通过
awscli
时,返回以下内容:

$ python3 getplans.py
25
$ aws apigateway get-usage-plans --profile myprofile | jq '.items | length'
39

我浏览了这两个项目的成果,发现只有一些完整的计划没有任何真正的韵律或原因。有人知道为什么会发生这种情况吗?

我为后来发现这个问题的人找到了答案。看起来,
bot3
正在对响应进行分页。我最终通过使用以下代码解决了问题:

import boto3

session = boto3.session.Session(profile_name='myprofile')
client = session.client('apigateway')
paginator = client.get_paginator('get_usage_plans')
page_iterator = paginator.paginate()
plans = []
for page in page_iterator:
    for plan in page['items']:
        plans.append(plan)