首页 > 解决方案 > CloudFormation 条件函数值基于参数

问题描述

我有一个parameter我定义环境的地方。

Parameters:
  Environment:
    Description: Environment. Example: qa, prod
    Type: String

我正在创建一个 RDS 集群,并且相对于环境,我想为BackupRetentionPeriod

逻辑是:如果是“prod”,则值应该是 int 35,如果不是 int 7。

BackupRetentionPeriod: !Ref Environment = prod, 35, 7

我阅读了文档,检查了几个示例,但仍然无法使其引用参数并内联设置一个或其他值。

标签: amazon-web-servicesamazon-cloudformation

解决方案


您可以在 CloudFormation 中使用IfEquals的组合:

Parameters:

  Environment:
    Description: Environment. Example: qa, prod
    Type: String

Conditions:

  IsProd: 
    !Equals [!Ref Environment, 'prod']  

Resources:

    ....
    ....
    BackupRetentionPeriod: !If [IsProd, 35, 7]

您也可以不使用单独Conditions的部分,但我认为 CFN 模板更易于阅读,因此我将其包含在内。


推荐阅读