我们可以在cloudformation中针对另一个参数禁用参数

时间:2018-05-30 13:50:26

标签: amazon-web-services amazon-cloudformation

如果用户在前面的参数中输入某个值,我们是否有办法禁用某些参数。例如

    dbUseExisitngParamGroup:
        Type: String
        Description: Enable or disable custom DB Parameter Group
        Default: 'false'
        AllowedValues:
          - true
          - false      
    dbExisitngParamGroupName:
        Type: String
        Description: Name of custom DB Parameter Group that you want for this RDS.
    dbNewParamsGroupFamilyName:
        Type: String
        Description: Set this value if to a valid param family if you want to create a new ParamGroup for this DB.
        Default: 'aurora5.6'

如果我在“dbUseExisitngParamGroup”参数中输入false,则应禁用“dbExisitngParamGroupName”参数以供用户输入任何值

2 个答案:

答案 0 :(得分:0)

没有

但您可以为资源添加条件,以便在提供dbUseExisitngParamGroup时忽略dbExisitngParamGroupName

答案 1 :(得分:0)

更详细地扩展Asdfg的答案:使用条件。您可以在模板的“条件”部分中定义条件(我使用的是JSON,因为我比YAML更熟悉它):

"dbCreateNewParamGroupCondition": {
    "Fn::Equals": [
        {
            "Ref": "dbExistingParamGroupName"
        },
        ""
    ]
}

然后在您的资源中,您将使用条件逻辑ID(dbCreateNewParamGroupCondition)。只有在条件计算结果为true时才会创建资源:

{
    "Type": "AWS::SomeResource::Type",
    "Condition": "dbCreateNewParamGroupCondition"
    ...
}