我对如何使用 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
有效!但这似乎是一个巨大的痛苦。难道就没有更简单的方法吗?
是的,您可以按照您的描述使用标记,但还添加了 paginators 来帮助完成这些操作。您会发现它们通常单独列在服务标题的“分页器”下。似乎有一个用于“在此处列出出口”。如果您不传入分页器的配置,它将分页浏览所有项目。 要使用分页器,您可以在客户端上使用 get_paginator,如下所示:
paginator = client.get_paginator(
"list_exports"
)
for page in paginator.paginate(
<your code here>
):