Comment utiliser Boto3 la pagination

De FOND:

AWS opération à la liste des utilisateurs IAM retourne un max de 50 par défaut.

La lecture de la documentation (liens) ci-dessous, j'ai couru code suivant et a renvoyé un ensemble complet de données en définissant la "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'])

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

QUESTION:

Si le "MaxItems" a été fixé à 10, par exemple, quelle serait la meilleure méthode pour faire une boucle dans les résultats? le

J'ai testé avec le suivant, mais il ne boucles de 2 itérations avant "IsTruncated' == False et des résultats dans "KeyError: 'Marqueur'". Pas sûr de savoir pourquoi cela se passe parce que je sais qu'il y a plus de 200 résultats.

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

Grâce.

dans boto3.client.get_paginator, MaxItems semble devenir de données d'inscription seuil/limiteur, il n'est pas utiliser comme paginator. Vous avez besoin d'utiliser PageSize pour la pagination

OriginalL'auteur user45097 | 2016-08-29