gpt4 book ai didi

json - 仅当 AWS ECS 集群不存在时,如何通过 AWS Cloudformation 创建它

转载 作者:行者123 更新时间:2023-12-03 07:18:18 25 4
gpt4 key购买 nike

我在 .json 中指定以下代码块以通过 AWS cloudformation 创建集群。

"MyCluster": {
"Type" : "AWS::ECS::Cluster",
"Properties" : {
"ClusterName" : {
"Ref": "EcsCluster"
}
}
}

如果具有特定名称的集群已存在,我想提供一个异常条件来忽略集群创建。任何帮助将不胜感激。

最佳答案

您只能根据条件值有条件地创建资源,并且所有条件都会在模板的“开始时间”进行评估,并且仅基于对输入参数的简单字符串和逻辑运算。因此,您无法执行任何操作,例如使用自定义资源来检查集群是否已存在,如果存在则跳过创建它。

您可以使用自定义资源来修改堆栈创建的 ECS 集群的名称,检查您的首选名称是否已被“占用”,如果是,则返回一个不同的、不冲突的名称。

如果需要完全消除该资源,则需要添加一个参数来打开或关闭它:

AWSTemplateFormatVersion: "2010-09-09"

Parameters:
CreateCluster:
Type: "String"
Description: "Whether to create the ECS Cluster"
AllowedValues: [ "true", "false" ]
Default: "false"
...

Conditions:
CreateCluster: { "Fn::Equals": [ { Ref: "CreateCluster" }, "true" ] }

....

Resources:
MyCluster:
Type: "AWS::ECS::Cluster"
Properties:
ClusterName: { Ref: "EcsCluster" }
Condition: "CreateCluster"

或者您需要使用 Transform重写模板,检查集群是否存在,如果存在则删除资源定义。

关于json - 仅当 AWS ECS 集群不存在时,如何通过 AWS Cloudformation 创建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52521471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com