尝试查看有关使用分页列出带有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
答案 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')