## cfer way to check if stack exists @stack_exists = !client.stack_cache(client.name).empty?
resource :EcsService, 'AWS::ECS::Service', DependsOn: [:EcsCluster, :EcsTask, :SgWeb, :AlbTg] do
cluster Fn::ref(:EcsCluster) deployment_configuration do minimum_healthy_percent 75 maximum_percent 200 end desired_count(0) unless @stack_exists # 0 on create, preserve value on update launch_type :FARGATE network_configuration do awsvpc_configuration do subnets Fn::split(',', Fn::import_value(Fn::sub('${<%= vpc %>}-<%= subnetids %>'))) assign_public_ip :ENABLED security_groups [ Fn::ref(:SgWeb) ] end end task_definition Fn::ref(:EcsTask) load_balancers [ { ContainerName: :app, ContainerPort: 3000, TargetGroupArn: Fn::ref(:AlbTg), } ]
end
output :EcsService, Fn::ref(:EcsService), export: Fn::sub('${AWS::StackName}-EcsService')