AWS Cloudformation参数依赖项

Ton*_*Lin 9 amazon-web-services aws-cloudformation

我正在尝试执行以下操作:

"Parameters": {
    "InterfaceMode" : {
        "Description": "Configure instance to run in onearm or inline mode",
        "Type": "String",
        "Default": "onearm",
        "AllowedValues": [ "onearm", "inline" ], 
    }
    "InlineSubnetId" : {
        "Description": "Name of a subnet assigned to the VPC to use for second interface in inline mode.", 
        "Type": "AWS::EC2::Subnet::Id",
        "Default": "None"
    },
Run Code Online (Sandbox Code Playgroud)

现在,如果用户选择onearm,则只需要一个接口,不需要InlineSubnetId.通常,用户会将"InlineSubnetId"下拉列表保留为空,但这不适用于云形式验证,因为它需要AWS类型的值.我不能只使用字符串类型,因为我希望用户从AWS提供的SubnetId中进行选择.

怎么解决这个问题?

  1. 有没有办法绕过验证,允许选择的AWS类型为空?
  2. 有没有办法在Subnet :: Id列表中添加"None"等其他选项?
  3. 有没有办法在模式内联时隐藏inlineSubnetId参数?
  4. 第二页参数怎么样,这取决于第一页参数的输出?

谢谢您的帮助.

mat*_*sev 0

我不认为你的问题有一个好的解决方案。您可以尝试的一件事是使用AWS::NoValue作为默认值,但我怀疑它是否有效。