Amazon web services 如何选择创建子网或使用cloudformation中提供的客户?

Amazon web services 如何选择创建子网或使用cloudformation中提供的客户?,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我想做什么:在cloudformation模板中,如果用户提供子网ID列表,请使用它们。否则,创建专有网络、子网等 我为捕获用户输入而定义的cloudformation参数是: useSubnet: Type: List<AWS::EC2::Subnet::Id> 但是,如果用户未在列表中选择任何子网值,模板将失败,原因是: 参数验证失败:参数名称的参数值 useSubnet不存在 我甚至尝试使用不同的参数来捕获用户选择,但仍然得到相同的错误。即: createVP

我想做什么:在cloudformation模板中,如果用户提供子网ID列表,请使用它们。否则,创建专有网络、子网等

我为捕获用户输入而定义的cloudformation参数是:

  useSubnet:
    Type: List<AWS::EC2::Subnet::Id>
但是,如果用户未在列表中选择任何子网值,模板将失败,原因是:

参数验证失败:参数名称的参数值 useSubnet不存在

我甚至尝试使用不同的参数来捕获用户选择,但仍然得到相同的错误。即:

  createVPC:
    Type: String
    AllowedValues: [true, false]
    Default: true
  useSubnet:
    Type: AWS::EC2::Subnet::Id
条件是:

CreateVPC: !Equals [!Ref createVPC, true]
并将其用作:

!If [CreateVPC, !Ref privateSubnet, !Ref useSubnet]

我得到了相同的错误…

我建议您提供两个CloudFormation模板,并让用户选择适合其网络设计的模板。一个模板构建专有网络、子网等。另一个模板要求用户提供自己的专有网络、子网ID等。您可能需要为
useSubnet
设置默认值(
'
)?
!If [CreateVPC, !Ref privateSubnet, !Ref useSubnet]