gpt4 book ai didi

amazon-web-services - 如何从AWS删除多个堆栈?

转载 作者:行者123 更新时间:2023-12-03 07:33:40 28 4
gpt4 key购买 nike

我正在 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com