如何获取所有云形成导出Boto3

问题描述 投票:0回答:1

我对如何使用 Boto3 的 list_exports 方法感到困惑。

response = client.list_exports(
    NextToken='string'
)

NextToken(字符串)——一个字符串(由 ListExports 响应输出提供),用于标识您要求检索的导出输出值的下一页。

响应语法示例

{
    'Exports': [
        {
            'ExportingStackId': 'string',
            'Name': 'string',
            'Value': 'string'
        },
    ],
    'NextToken': 'string'
}

没有明确说明的是 1/ 缺少 NextToken 参数是可以接受的,2/ 必须重复调用该方法,直到返回所有值。

def get_all_exports(stack):
    map_ = {}
    client = boto3.client('cloudformation')
    response = client.list_exports()
    next_ = response['NextToken']
    helper(response, map_, stack)

    while next_ != '':
        response = client.list_exports(NextToken=next_)
        helper(response, map_, stack)

    return map_ 


def helper(response, map_, stack):
    for ex in response['Exports']:
        if ['ExportingStackId'] == stack:
            key = ex['Name']
            val = ex['Value'] 
            map_[key] = val  

有效!但这似乎是一个巨大的痛苦。难道就没有更简单的方法吗?

python aws-cloudformation boto3
1个回答
0
投票

是的,您可以按照您的描述使用标记,但还添加了 paginators 来帮助完成这些操作。您会发现它们通常单独列在服务标题的“分页器”下。似乎有一个用于“在此处列出出口”。如果您不传入分页器的配置,它将分页浏览所有项目。 要使用分页器,您可以在客户端上使用 get_paginator,如下所示:

paginator = client.get_paginator( "list_exports" ) for page in paginator.paginate( <your code here> ):

© www.soinside.com 2019 - 2024. All rights reserved.