## 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')