boto3 - 如何在 boto3 中使用 list_stacks 来查找堆栈并对其进行过滤?
问题描述
如何在 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'
解决方案
在 boto3 中,该list_stacks()
函数没有用于stack_names
.
客户端只有 2 个选项,您只能根据以下条件过滤输出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'
}
因此,对于您的用例,您需要response['StackSummaries']
自己在 python 中循环 + 过滤字典,而不是使用 boto3 寻找选项。
编辑
在这里可以完美使用的选项是describe_stacks
返回有关特定堆栈的信息。
看这里
希望这可以澄清。
推荐阅读
- javascript - 每秒运行一次函数 X 次
- sql - 卡在 SQL Server 过程代码上
- c# - 使用嵌套属性动态生成 LINQ 选择
- java - Bamboo 使用 JAVA_HOME 失败应该指向 CentOS 7 上 Maven 任务中的 JDK 而不是 JRE
- android - 映射超类
- jquery - 使用 Jquery 从没有后端的 HTML 表中减去值
- restful-url - 如何通过 RESTful 访问 IBM Cloud Object Storage 上的文件
- ios - WKWebView 加载 html 代码而不是内容(iOS)
- php - 如何将android模拟器连接到api服务
- java - 递归求和法