Вы можете условно создавать ресурсы только на основе значений Conditions
, и все условия оцениваются в «время начала» шаблона и основаны только на простых строковых и логических операциях с вашими входными параметрами.Таким образом, вы не можете ничего сделать, как использовать пользовательский ресурс, чтобы проверить, существует ли кластер, и пропустить его создание, если это так.
Вы можете использовать пользовательский ресурс для обработки имени кластера 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 переписать шаблон, проверить, существует ли кластер, и удалить определение ресурса, если это так.