You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFormation能否基于参数列表是否含指定值配置资源删除策略?

CloudFormation条件化配置删除策略的实现方法

CloudFormation支持实现你需要的逻辑,但不能直接用示例中的!Contains语法直接赋值给DeletionPolicy,需要借助条件定义+条件函数来完成。

具体实现步骤:

  1. 定义判断条件
    在模板的Conditions块中先定义逻辑,检查Profiles列表是否包含"dev":

    Conditions:
      IsDevEnvironment: !Contains [!Ref Profiles, "dev"]
    
  2. 动态设置删除策略
    在S3桶资源中,使用!If条件函数根据上述条件指定删除策略:

    MyBucket:
      Type: AWS::S3::Bucket
      DeletionPolicy: !If [IsDevEnvironment, Delete, Retain]
    
    • 当Profiles包含"dev"时,删除策略为Delete(删除栈时销毁桶)
    • 当Profiles不包含"dev"时,删除策略为Retain(删除栈时保留桶)

补充说明:

  • !Contains函数可直接作用于CommaDelimitedList类型的参数,无需额外格式转换。
  • 该方法依赖CloudFormation对元属性(如DeletionPolicy)支持条件函数的特性,目前AWS官方已全面支持此用法。

内容的提问来源于stack exchange,提问作者Garret Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:48:08