Amazon web services cloudforamtion yml模板中带有if-else语句的DependsOn
您好,我有2个AWS::ElasticLoadBalancingV2::Listener名称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必须是字
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中这样做。