为什么使用boto3遍历分页器返回的页面如此缓慢?

时间:2019-03-06 21:08:28

标签: python pagination boto3

我正在使用boto3从AWS基础设施检索资源。我的代码从所有16个区域提取函数。我很好奇为什么它这么慢(大约20秒)。在调查时,我意识到以下代码行是瓶颈:

pages = client.get_paginator(paginator_name).paginate(**paginator_args)
client = AWSFacadeUtils.get_client(service, region)
pages = client.get_paginator(paginator_name).paginate(**paginator_args))

resources = []
for page in pages: # This is hella slow
    resources.extend(page[key])

return resources

为什么遍历页面这么慢?

1 个答案:

答案 0 :(得分:0)

遍历页面如此之慢的原因在于,您不仅要遍历资源,还需要获取资源。

在文档中,paginator的意思如下:

  

分页(**变格)

     

为操作创建分页器对象。

     

这将返回一个可迭代的对象。迭代此对象将产生一个      一次只有一页。