Amazon web services cloudforamtion yml模板中带有if-else语句的DependsOn

Amazon web services cloudforamtion yml模板中带有if-else语句的DependsOn,amazon-web-services,yaml,amazon-cloudformation,Amazon Web Services,Yaml,Amazon Cloudformation,您好,我有2个AWS::ElasticLoadBalancingV2::Listener名称Listener1和Listener2。我的情况是部署了listner1或listner1 我已经创建了一个ecs服务,我想依赖它 Service: Type: AWS::ECS::Service DependsOn: !If [Condition, Listener1, Listener2] Properties: 部署时,其“给我”错误模板格式错误:DependsOn必须是字

您好,我有2个AWS::ElasticLoadBalancingV2::Listener名称
Listener1
Listener2
。我的情况是部署了
listner1
listner1
我已经创建了一个ecs服务,我想依赖它

Service:
    Type: AWS::ECS::Service
    DependsOn: !If [Condition, Listener1, Listener2]
    Properties:

部署时,其“给我”错误
模板格式错误:DependsOn必须是字符串或字符串列表。

很遗憾,您无法执行以下操作:

 DependsOn: !If [Condition, Listener1, Listener2]
正如错误消息所说,
DependsOn
只获取字符串值或字符串列表,而不是函数,例如:

DependsOn: [SomeExistingResource1, SomeExistingResource2]
另外,
Fn::If
只能在元数据属性、更新策略属性和属性值中使用。发件人:

目前,AWS CloudFormation支持模板的元数据属性中的Fn::If内在函数、更新策略属性以及参考资料部分和输出部分中的属性值


因此,您不能在
DependsOn
中使用
Fn::If
,遗憾的是,您不能执行以下操作:

 DependsOn: !If [Condition, Listener1, Listener2]
正如错误消息所说,
DependsOn
只获取字符串值或字符串列表,而不是函数,例如:

DependsOn: [SomeExistingResource1, SomeExistingResource2]
另外,
Fn::If
只能在元数据属性、更新策略属性和属性值中使用。发件人:

目前,AWS CloudFormation支持模板的元数据属性中的Fn::If内在函数、更新策略属性以及参考资料部分和输出部分中的属性值


因此,您不能在
DependsOn

中使用
Fn::If
,这在未部署listener1时不会导致任何错误吗?因为将根据条件部署Listener1或listener2。@SudarshanRampuria是,它将出错。我将更改答案,以免混淆。这只是一个例子。您需要重新设计模板,因为您不能在CFN中执行此类操作。当未部署listener1时,这不会导致任何错误吗?因为将根据条件部署Listener1或listener2。@SudarshanRampuria是,它将出错。我将更改答案,以免混淆。这只是一个例子。你需要重新设计你的模板,因为你不能在CFN中这样做。