in ecs/service.go [68:112]
func (ecs *ECS) CreateService(input *CreateServiceInput) {
console.Debug("Creating ECS service")
assignPublicIP := awsecs.AssignPublicIpEnabled
if !input.AssignPublicIpEnabled {
assignPublicIP = awsecs.AssignPublicIpDisabled
}
createServiceInput := &awsecs.CreateServiceInput{
Cluster: aws.String(input.Cluster),
DesiredCount: aws.Int64(input.DesiredCount),
ServiceName: aws.String(input.Name),
TaskDefinition: aws.String(input.TaskDefinitionArn),
LaunchType: aws.String(awsecs.CompatibilityFargate),
NetworkConfiguration: &awsecs.NetworkConfiguration{
AwsvpcConfiguration: &awsecs.AwsVpcConfiguration{
AssignPublicIp: aws.String(assignPublicIP),
Subnets: aws.StringSlice(input.SubnetIds),
SecurityGroups: aws.StringSlice(input.SecurityGroupIds),
},
},
}
if input.TargetGroupArn != "" && input.Port > 0 {
createServiceInput.SetLoadBalancers(
[]*awsecs.LoadBalancer{
&awsecs.LoadBalancer{
TargetGroupArn: aws.String(input.TargetGroupArn),
ContainerPort: aws.Int64(input.Port),
ContainerName: aws.String(input.Name),
},
},
)
}
_, err := ecs.svc.CreateService(createServiceInput)
if err != nil {
console.ErrorExit(err, "Couldn't create ECS service")
}
console.Debug("Created ECS service [%s]", input.Name)
return
}