当前位置:  开发笔记 > 前端 > 正文

AWS:如何在CloudFormation模板中指定布尔参数

如何解决《AWS:如何在CloudFormation模板中指定布尔参数》经验,为你挑选了1个好方法。

我正在尝试在CloudFormation模板中指定一个布尔参数,以便我可以根据传入的参数有条件地创建资源.

查看此处和此处的文档,可能会出现明显缺少布尔数据类型的情况.

指定布尔值的最佳做法是什么?可能是Number0或1次或StringAllowedValues"真"与"假"?



1> wjordan..:

该快速入门模板是多么复杂的模板可以/应该创建一个良好的,半官方的参考点,并完全按照你描述的,用他们实施条件资源布尔值StringAllowedValues truefalse.这是一个具体的例子:

"EnableBanner": {
    "AllowedValues": [
        "true",
        "false"
    ],
    "Default": "false",
    "Description": "To include a banner to be displayed when connecting via SSH to the bastion, set this parameter to true",
    "Type": "String"
}

类似的示例可以在条件中使用 CloudFormation文档中的现有资源示例中找到,其中AllowedValuesdefaultNONE(默认).

要根据此类布尔参数有条件地创建资源,请添加包含内部函数匹配的Condition语句,然后向该资源添加一个键.Fn::EqualstrueCondition

这是一个完整的,最小的示例模板:

启动堆栈

Parameters:
  CreateResource:
    Description: Whether I should create a resource.
    Default: false
    Type: String
    AllowedValues: [true, false]
Conditions:
  ShouldCreateResource:
    !Equals [true, !Ref CreateResource]
Resources:
  Resource:
    Type: AWS::CloudFormation::WaitConditionHandle
    Condition: ShouldCreateResource


这是愚蠢的,你真棒.
对于字符串'true'和文字'true'是否对同一事物求值,我仍不清楚。我在文档中看到了这两种情况的示例,似乎可以互换使用。
@Arel,在YAML中,“ true”和“ true”都是字符串。字符串周围的引号通常是可选的。当涉及数字或特殊字符时,有些例外。
@arel @MarkR YAML规范[标签解析](https://yaml.org/spec/1.2/spec.html#id2805071)明确将`true`解析为本机布尔类型,因此,'true'和至少在YAML本身中,“ true”不会评估同一件事。在CloudFormation中,至少对于String类型的参数值似乎在验证之前将任何YAML本地值转换为String,因此在这种情况下,至少'true'和'true'可以互换。
推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有