Class: AWSCDK::ECS::CfnTaskSet::LoadBalancerProperty
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::ECS::CfnTaskSet::LoadBalancerProperty
- Defined in:
- ecs/cfn_task_set.rb
Overview
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 .
Instance Attribute Summary collapse
-
#container_name ⇒ String?
readonly
The name of the container (as it appears in a container definition) to associate with the load balancer.
-
#container_port ⇒ Numeric?
readonly
The port on the container to associate with the load balancer.
-
#target_group_arn ⇒ String?
readonly
The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(container_name: nil, container_port: nil, target_group_arn: nil) ⇒ LoadBalancerProperty
constructor
A new instance of LoadBalancerProperty.
- #to_jsii ⇒ Object
Constructor Details
#initialize(container_name: nil, container_port: nil, target_group_arn: nil) ⇒ LoadBalancerProperty
Returns a new instance of LoadBalancerProperty.
836 837 838 839 840 841 842 843 |
# File 'ecs/cfn_task_set.rb', line 836 def initialize(container_name: nil, container_port: nil, target_group_arn: nil) @container_name = container_name Jsii::Type.check_type(@container_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "containerName") unless @container_name.nil? @container_port = container_port Jsii::Type.check_type(@container_port, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "containerPort") unless @container_port.nil? @target_group_arn = target_group_arn Jsii::Type.check_type(@target_group_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "targetGroupArn") unless @target_group_arn.nil? end |
Instance Attribute Details
#container_name ⇒ String? (readonly)
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.
851 852 853 |
# File 'ecs/cfn_task_set.rb', line 851 def container_name @container_name end |
#container_port ⇒ Numeric? (readonly)
The port on the container to associate with the load balancer.
This port must correspond to a container_port 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 host_port of the port mapping.
858 859 860 |
# File 'ecs/cfn_task_set.rb', line 858 def container_port @container_port end |
#target_group_arn ⇒ String? (readonly)
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
awsvpcnetwork mode, you must chooseipas the target type, notinstance. Do this when creating your target groups because tasks that use theawsvpcnetwork mode are associated with an elastic network interface, not an Amazon EC2 instance. This network mode is required for the Fargate launch type.
871 872 873 |
# File 'ecs/cfn_task_set.rb', line 871 def target_group_arn @target_group_arn end |
Class Method Details
.jsii_properties ⇒ Object
873 874 875 876 877 878 879 |
# File 'ecs/cfn_task_set.rb', line 873 def self.jsii_properties { :container_name => "containerName", :container_port => "containerPort", :target_group_arn => "targetGroupArn", } end |
Instance Method Details
#to_jsii ⇒ Object
881 882 883 884 885 886 887 888 889 |
# File 'ecs/cfn_task_set.rb', line 881 def to_jsii result = {} result.merge!({ "containerName" => @container_name, "containerPort" => @container_port, "targetGroupArn" => @target_group_arn, }) result.compact end |