如何在boto3中使用list_stacks来找到一个名为test-logging-9823492834的堆栈,该堆栈的数目是随机的?
我的尝试
for stack in qa.cfn.list_stacks().filter(Prefix='test-logging'):
print('{0}:{1}'.format(stack.name, stack.key))
AttributeError: 'dict' object has no attribute 'filter'
答案 0 :(得分:0)
在boto3中,list_stacks()
函数没有用于stack_names
的过滤方法。
客户端只有两个选项,
其中只能基于StackStatus
过滤输出:
response = client.list_stacks(NextToken='string',StackStatusFilter='option')
上述调用的响应只会返回StackSummaries
的字典:
{
'StackSummaries': [
{
'StackId': 'string',
'StackName': 'string',
'TemplateDescription': 'string',
'CreationTime': datetime(2015, 1, 1),
'LastUpdatedTime': datetime(2015, 1, 1),
'DeletionTime': datetime(2015, 1, 1),
'StackStatus': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|'ROLLBACK_IN_PROGRESS'|'ROLLBACK_FAILED'|'ROLLBACK_COMPLETE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'UPDATE_IN_PROGRESS'|'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS'|'UPDATE_COMPLETE'|'UPDATE_ROLLBACK_IN_PROGRESS'|'UPDATE_ROLLBACK_FAILED'|'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS'|'UPDATE_ROLLBACK_COMPLETE'|'REVIEW_IN_PROGRESS',
'StackStatusReason': 'string',
'ParentId': 'string',
'RootId': 'string',
'DriftInformation': {
'StackDriftStatus': 'DRIFTED'|'IN_SYNC'|'UNKNOWN'|'NOT_CHECKED',
'LastCheckTimestamp': datetime(2015, 1, 1)
}
},
],
'NextToken': 'string'
}
因此,对于您的用例,您将需要在Python中循环+过滤response['StackSummaries']
字典,而不是使用boto3查找选项。
编辑
在这里可以完美使用的选项是describe_stacks
,它将返回有关特定堆栈的信息。
look here
希望这可以澄清。