相关疑难解决方法(0)

如何使用Boto3分页

背景:

列出IAM用户的AWS操作默认返回最大值50.

阅读下面的文档(链接),我运行了以下代码,并通过将"MaxItems"设置为1000来返回完整的设置数据.

paginator = client.get_paginator('list_users')
response_iterator = paginator.paginate(
 PaginationConfig={
     'MaxItems': 1000,
     'PageSize': 123})
for page in response_iterator:
    u = page['Users']
    for user in u:
        print(user['UserName'])
Run Code Online (Sandbox Code Playgroud)

http://boto3.readthedocs.io/en/latest/guide/paginators.html https://boto3.readthedocs.io/en/latest/reference/services/iam.html#IAM.Paginator.ListUsers

题:

例如,如果将"MaxItems"设置为10,那么循环结果的最佳方法是什么?该

我测试了以下但是它只在'IsTruncated'== False之前循环2次迭代并导致"KeyError:'Marker'".不知道为什么会这样,因为我知道有超过200个结果.

marker = None

while True:
    paginator = client.get_paginator('list_users')
    response_iterator = paginator.paginate( 
        PaginationConfig={
            'MaxItems': 10,
            'StartingToken': marker})
    #print(response_iterator)
    for page in response_iterator:
        u = page['Users']
        for user in u:
            print(user['UserName'])
            print(page['IsTruncated'])
            marker = page['Marker']
            print(marker)
        else:
            break
Run Code Online (Sandbox Code Playgroud)

谢谢.

amazon-web-services python-3.x boto3

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

amazon-web-services ×1

boto3 ×1

python-3.x ×1