作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 AWS 上工作,这里部署了多个 cloudformations 堆栈。现在我想立即删除它们,以便我可以重新铺设环境。
但是我没有找到任何方法可以做到这一点。我正在使用以下命令来查看堆栈列表。
aws cloudformation list-stacks
有人可以帮忙吗,我现在如何删除所有堆栈?
最佳答案
您可以运行一个简短的 python 脚本来迭代堆栈。
import boto3
cf_client = boto3.client('cloudformation', region_name="us-east-1")
for stack in cf_client.describe_stacks()['Stacks']:
print("deleting {}".format(stack['StackName']))
cf_client.delete_stack(StackName=stack['StackName'])
如果您想处理终止保护、删除失败和等待等边缘情况,请使用:
import boto3
cf_client = boto3.client('cloudformation', region_name="us-east-1")
deletion_waiter = cf_client.get_waiter('stack_delete_complete')
cloudformation = boto3.resource('cloudformation')
stack_list = cf_client.describe_stacks()['Stacks']
for st in stack_list:
stack = cloudformation.Stack(st['StackName'])
cf_client.update_termination_protection(EnableTerminationProtection=False,StackName=stack.stack_name)
print(stack.stack_name)
if stack.stack_status == 'DELETE_FAILED':
retain_resource = stack.stack_status_reason.split('[')[-1].split(']')[0]
print("deleting {} while retaining {} ".format(stack.stack_name, retain_resource))
cf_client.delete_stack(StackName=stack.stack_name, RetainResources=[retain_resource])
else:
print("deleting {}".format(stack.stack_name))
cf_client.delete_stack(StackName=stack.stack_name)
deletion_waiter.wait( StackName=stack.stack_name,WaiterConfig={'Delay': 30,'MaxAttempts': 6})
关于amazon-web-services - 如何从AWS删除多个堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72550529/
我是一名优秀的程序员,十分优秀!