Class LoadBalancer

java.lang.Object
software.amazon.awssdk.services.ecs.model.LoadBalancer
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<LoadBalancer.Builder,LoadBalancer>

@Generated("software.amazon.awssdk:codegen") public final class LoadBalancer extends Object implements SdkPojo, Serializable, ToCopyableBuilder<LoadBalancer.Builder,LoadBalancer>

The load balancer configuration to use with a service or task set.

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

A service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles in the Amazon Elastic Container Service Developer Guide.

See Also:
  • Method Details

    • targetGroupArn

      public final String targetGroupArn()

      The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.

      A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer.

      For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see Registering multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

      For services using the CODE_DEPLOY deployment controller, you're required to define two target groups for the load balancer. For more information, see Blue/green deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide.

      If your service's task definition uses the awsvpc network mode, you must choose ip as the target type, not instance. Do this when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance. This network mode is required for the Fargate launch type.

      Returns:
      The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.

      A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer.

      For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see Registering multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

      For services using the CODE_DEPLOY deployment controller, you're required to define two target groups for the load balancer. For more information, see Blue/green deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide.

      If your service's task definition uses the awsvpc network mode, you must choose ip as the target type, not instance. Do this when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance. This network mode is required for the Fargate launch type.

    • loadBalancerName

      public final String loadBalancerName()

      The name of the load balancer to associate with the Amazon ECS service or task set.

      If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.

      Returns:
      The name of the load balancer to associate with the Amazon ECS service or task set.

      If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.

    • containerName

      public final String containerName()

      The name of the container (as it appears in a container definition) to associate with the load balancer.

      You need to specify the container name when configuring the target group for an Amazon ECS load balancer.

      Returns:
      The name of the container (as it appears in a container definition) to associate with the load balancer.

      You need to specify the container name when configuring the target group for an Amazon ECS load balancer.

    • containerPort

      public final Integer containerPort()

      The port on the container to associate with the load balancer. This port must correspond to a containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the hostPort of the port mapping.

      Returns:
      The port on the container to associate with the load balancer. This port must correspond to a containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the hostPort of the port mapping.
    • toBuilder

      public LoadBalancer.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<LoadBalancer.Builder,LoadBalancer>
      Returns:
      a builder for type T
    • builder

      public static LoadBalancer.Builder builder()
    • serializableBuilderClass

      public static Class<? extends LoadBalancer.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.