带有route53domains的boto3分页

时间:2019-04-19 05:29:09

标签: boto3 amazon-route53

尝试查看有关使用分页列出带有boto3的Python脚本的注册域的信息。目前,我们有200个,MaxItems是100个。试图找出一种在20页的页面中进行分页的方法。我检查了boto3文档中的route53domains,这是我正在使用的方法,并且在Google周围没有成功。

尝试了各种分页方法,但每次都会出错。想知道route53域是否支持分页。

#!/usr/bin/env python 

import boto3
import json

listofdomains = []

client = boto3.client('route53domains', region_name='us-east-1')
r = client.list_domains(
    #Marker='NextPageMarker',
    MaxItems=100
)


for i in r['Domains']:
   listofdomains.append(i['DomainName'])
   print(i['DomainName'])

finallist = json.dumps(listofdomains)
print finallist

2 个答案:

答案 0 :(得分:1)

请注意,us-east-1是允许列出域的唯一区域。而且我不确定使用Config对象是否更合适,因为我发现了如何从[Boto3 docs] [1]中重置默认区域。然后其他一切就像@ charlesreid1所做的一样。

from botocore.config import Config

my_config = Config(
    region_name = 'us-east-1',
    signature_version = 'v4',
    retries = {
        'max_attempts': 10,
        'mode': 'standard'
    }
)

client = boto3.client('route53domains', config=my_config)


  [1]: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html?highlight=region

答案 1 :(得分:0)

您的代码询问域列表的方式,是要返回列出结果的单个“页面”,并且正如您提到的,列表的最大大小为100。相反,获取list_domains的{​​{1}}方法的分页器,并使用该分页器遍历每一页结果,一次一次:

client.get_paginator('list_domains')