使用 boto3 列出 100 多个堆栈

Listing more than 100 stacks using boto3

我们需要列出所有处于 CREATE_COMPLETE 状态的堆栈。在我们的 AWS 账户中,我们有超过 400 个这样的堆栈。我们为此编写了以下代码:

stack_session = session.client('cloudformation')
list_stacks = stack_session.list_stacks(StackStatusFilter=['CREATE_COMPLETE'])

然而,这只列出了前 100 个堆栈。我们想知道如何获得所有堆栈?我们正在使用 python boto3 库。

我使用分页来完成这项工作。我写的代码如下:

stack_session = session.client('cloudformation')
paginator = stack_session.get_paginator('list_stacks')
response_iterator = paginator.paginate(StackStatusFilter=['CREATE_COMPLETE'])
for page in response_iterator:
    stack = page['StackSummaries']
    for output in stack:
        print output['StackName']

这打印了我们需要的所有 451 个堆栈。