diff --git a/builtin/providers/aws/resource_aws_ecs_service.go b/builtin/providers/aws/resource_aws_ecs_service.go index eee8ddf06..9874effd5 100644 --- a/builtin/providers/aws/resource_aws_ecs_service.go +++ b/builtin/providers/aws/resource_aws_ecs_service.go @@ -511,21 +511,14 @@ func resourceAwsEcsLoadBalancerHash(v interface{}) int { var buf bytes.Buffer m := v.(map[string]interface{}) - // There are 2 types of load balancers: ELB/ALB - // In case of ELB `elb_name` is expected and for ALB `target_group_arn` is. - optionalLoadBalancerParams := []string{"target_group_arn", "elb_name"} - - for i := range optionalLoadBalancerParams { - paramName := optionalLoadBalancerParams[i] - - if m[paramName] != nil { - buf.WriteString(fmt.Sprintf("%s-", m[paramName].(string))) - } - } - + buf.WriteString(fmt.Sprintf("%s-", m["elb_name"].(string))) buf.WriteString(fmt.Sprintf("%s-", m["container_name"].(string))) buf.WriteString(fmt.Sprintf("%d-", m["container_port"].(int))) + if s := m["target_group_arn"].(string); s != "" { + buf.WriteString(fmt.Sprintf("%s-", s)) + } + return hashcode.String(buf.String()) }