gpt4 book ai didi

amazon-web-services - 在cloudformation中指定删除堆栈顺序

转载 作者:行者123 更新时间:2023-12-04 08:14:46 26 4
gpt4 key购买 nike

我正在使用 cloudformation 创建 AWS 堆栈。我正在创建 EBS 卷作为 Cloud Formation 的一部分,并在 Bootstrap 中将它们附加到 EC2。

创建部分工作正常。但是,在删除堆栈时,Cloudformation 会首先尝试删除 EBS 卷。由于卷已附加,因此无法删除并删除剩余资源。

因此,EBS 卷将保留在那里,除非手动删除或再次使用删除堆栈。

有没有办法可以指定删除(仅)cloudformation 模板中的资源的顺序。?

最佳答案

控制 CloudFormation 操作顺序的唯一机制是使用 DependsOn。但这并不能解决这个特定问题。

您在此处描述的问题发生是因为 CloudFormation 不知道该卷已附加:您通过单独的机制附加它(正如您所描述的,使用 EC2 bootstrap,我认为这会是某种机制)例如,像 EC2 实例用户数据脚本上的 aws 命令)。

您可以做的是CloudFormation 为您附加卷。这样,CloudFormation 知道该卷已附加,并且它也知道必须分离该卷。

为此,您需要使用 AWS::EC2::VolumeAttachment 类型的资源。一个 YAML 片段类似于:

Resources:
MyInstance:
Type: AWS::EC2::Instance
Properties:
...
MyVolume:
Type: AWS::EC2::Volume
Properties:
...
MyVolumeAttachment:
Type: AWS::EC2::VolumeAttachment
Properties:
Device: /dev/sdf
InstanceId: !Ref MyInstance
VolumeId: !Ref MyVolume

CFN 上有很多 *Attachment 资源类型,正是为了这个目的:您让 CFN 将资源附加到您身上,您为资源指定一个 Ref参与附加的资源,因此 CFN 知道“顺序”(即,它首先创建 2 个资源,然后附加它们,或者在删除时,它首先分离,然后删除这两个资源),然后 CFN 可以为您处理整个过程。 .

关于amazon-web-services - 在cloudformation中指定删除堆栈顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43808522/

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