【问题标题】:AWS CloudFormation not honouring implicit dependenciesAWS CloudFormation 不尊重隐式依赖项
【发布时间】:2021-12-29 07:28:24
【问题描述】:

使用 CloudFormation,我创建了一个带有附加 EBS 卷的 EC2 实例。虽然创建工作正常,但删除总是失败,因为 CloudFormation 尝试在 EC2 实例之前删除 EBS 卷,因此可以预见会发生错误。

卷 vol-xxxxxx 目前已附加到 i-xxxxxx

在模板中,没有显式的依赖,但是我的理解是依赖也可以是隐式的。从下面的sn-p可以看出,EC2实例指定的VolumeId!Ref SasEbsVolume,因此隐含了依赖关系,应该在EBS卷之前删除EC2实例。

Resources:
  SasEbsVolume:
    Type: AWS::EC2::Volume
    DeletionPolicy: Snapshot
    Properties:
      ...

  SasInstance:
    Type: AWS::EC2::Instance
    Properties:
      ...
      Volumes:
        - Device: /dev/xvdd
          VolumeId: !Ref SasEbsVolume

我对 CloudFormation 中的依赖项如何工作的理解不正确,在这种情况下我可以声明一个显式依赖项,还是 CloudFormation 没有做它应该做的事情?

【问题讨论】:

    标签: dependencies amazon-cloudformation


    【解决方案1】:

    这里的问题是 EC2 实例终止保护。

      SasInstance:
        Type: AWS::EC2::Instance
        Properties:
          ...
          DisableApiTermination: true
          ...
    

    删除终止保护后,CloudFormation 模板删除成功。

    希望 AWS 在发生此问题时通过 CloudFormation 事件使其显而易见,因为目前根本没有任何内容可以指导用户。

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 2022-06-23
      • 2019-03-19
      • 2013-12-16
      • 2020-03-07
      • 2021-04-16
      相关资源
      最近更新 更多