NetworkTargetGroup

class aws_cdk.aws_elasticloadbalancingv2.NetworkTargetGroup(scope, id, *, port, connection_termination=None, preserve_client_ip=None, protocol=None, proxy_protocol_v2=None, targets=None, deregistration_delay=None, health_check=None, target_group_name=None, target_type=None, vpc=None)

Bases: TargetGroupBase

Define a Network Target Group.

ExampleMetadata:

infused

Example:

import aws_cdk.aws_elasticloadbalancing as elb
import aws_cdk.aws_elasticloadbalancingv2 as elb2

# clb: elb.LoadBalancer
# alb: elb2.ApplicationLoadBalancer
# nlb: elb2.NetworkLoadBalancer


alb_listener = alb.add_listener("ALBListener", port=80)
alb_target_group = alb_listener.add_targets("ALBFleet", port=80)

nlb_listener = nlb.add_listener("NLBListener", port=80)
nlb_target_group = nlb_listener.add_targets("NLBFleet", port=80)

deployment_group = codedeploy.ServerDeploymentGroup(self, "DeploymentGroup",
    load_balancers=[
        codedeploy.LoadBalancer.classic(clb),
        codedeploy.LoadBalancer.application(alb_target_group),
        codedeploy.LoadBalancer.network(nlb_target_group)
    ]
)
Parameters:
  • scope (Construct) –

  • id (str) –

  • port (Union[int, float]) – The port on which the target receives traffic.

  • connection_termination (Optional[bool]) – Indicates whether the load balancer terminates connections at the end of the deregistration timeout. Default: false

  • preserve_client_ip (Optional[bool]) – Indicates whether client IP preservation is enabled. Default: false if the target group type is IP address and the target group protocol is TCP or TLS. Otherwise, true.

  • protocol (Optional[Protocol]) – Protocol for target group, expects TCP, TLS, UDP, or TCP_UDP. Default: - TCP

  • proxy_protocol_v2 (Optional[bool]) – Indicates whether Proxy Protocol version 2 is enabled. Default: false

  • targets (Optional[Sequence[INetworkLoadBalancerTarget]]) – The targets to add to this target group. Can be Instance, IPAddress, or any self-registering load balancing target. If you use either Instance or IPAddress as targets, all target must be of the same type. Default: - No targets.

  • deregistration_delay (Optional[Duration]) – The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300

  • health_check (Union[HealthCheck, Dict[str, Any], None]) – Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.

  • target_group_name (Optional[str]) – The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. Default: - Automatically generated.

  • target_type (Optional[TargetType]) – The type of targets registered to this TargetGroup, either IP or Instance. All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically. Default: - Determined automatically.

  • vpc (Optional[IVpc]) – The virtual private cloud (VPC). only if TargetType is Ip or InstanceId Default: - undefined

Methods

add_target(*targets)

Add a load balancing target to this target group.

Parameters:

targets (INetworkLoadBalancerTarget) –

Return type:

None

configure_health_check(*, enabled=None, healthy_grpc_codes=None, healthy_http_codes=None, healthy_threshold_count=None, interval=None, path=None, port=None, protocol=None, timeout=None, unhealthy_threshold_count=None)

Set/replace the target group’s health check.

Parameters:
  • enabled (Optional[bool]) – Indicates whether health checks are enabled. If the target type is lambda, health checks are disabled by default but can be enabled. If the target type is instance or ip, health checks are always enabled and cannot be disabled. Default: - Determined automatically.

  • healthy_grpc_codes (Optional[str]) – GRPC code to use when checking for a successful response from a target. You can specify values between 0 and 99. You can specify multiple values (for example, “0,1”) or a range of values (for example, “0-5”). Default: - 12

  • healthy_http_codes (Optional[str]) – HTTP code to use when checking for a successful response from a target. For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values (for example, “200,202”) or a range of values (for example, “200-299”).

  • healthy_threshold_count (Union[int, float, None]) – The number of consecutive health checks successes required before considering an unhealthy target healthy. For Application Load Balancers, the default is 5. For Network Load Balancers, the default is 3. Default: 5 for ALBs, 3 for NLBs

  • interval (Optional[Duration]) – The approximate number of seconds between health checks for an individual target. Must be 5 to 300 seconds Default: 10 seconds if protocol is GENEVE, 35 seconds if target type is lambda, else 30 seconds

  • path (Optional[str]) – The ping path destination where Elastic Load Balancing sends health check requests. Default: /

  • port (Optional[str]) – The port that the load balancer uses when performing health checks on the targets. Default: ‘traffic-port’

  • protocol (Optional[Protocol]) – The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and TCP_UDP protocols are not supported for health checks. Default: HTTP for ALBs, TCP for NLBs

  • timeout (Optional[Duration]) – The amount of time, in seconds, during which no response from a target means a failed health check. Must be 2 to 120 seconds. Default: 6 seconds if the protocol is HTTP, 5 seconds if protocol is GENEVE, 30 seconds if target type is lambda, 10 seconds for TCP, TLS, or HTTPS

  • unhealthy_threshold_count (Union[int, float, None]) – The number of consecutive health check failures required before considering a target unhealthy. For Application Load Balancers, the default is 2. For Network Load Balancers, this value must be the same as the healthy threshold count. Default: 2

Return type:

None

metric_healthy_host_count(*, account=None, color=None, dimensions_map=None, label=None, period=None, region=None, statistic=None, unit=None)

(deprecated) The number of targets that are considered healthy.

Parameters:
  • account (Optional[str]) – Account which this metric comes from. Default: - Deployment account.

  • color (Optional[str]) – The hex color code, prefixed with ‘#’ (e.g. ‘#00ff00’), to use when this metric is rendered on a graph. The Color class has a set of standard colors that can be used here. Default: - Automatic color

  • dimensions_map (Optional[Mapping[str, str]]) – Dimensions of the metric. Default: - No dimensions.

  • label (Optional[str]) – Label for this metric when added to a Graph in a Dashboard. You can use dynamic labels to show summary information about the entire displayed time series in the legend. For example, if you use:: [max: ${MAX}] MyMetric As the metric label, the maximum value in the visible range will be shown next to the time series name in the graph’s legend. Default: - No label

  • period (Optional[Duration]) – The period over which the specified statistic is applied. Default: Duration.minutes(5)

  • region (Optional[str]) – Region which this metric comes from. Default: - Deployment region.

  • statistic (Optional[str]) – What function to use for aggregating. Use the aws_cloudwatch.Stats helper class to construct valid input strings. Can be one of the following: - “Minimum” | “min” - “Maximum” | “max” - “Average” | “avg” - “Sum” | “sum” - “SampleCount | “n” - “pNN.NN” - “tmNN.NN” | “tm(NN.NN%:NN.NN%)” - “iqm” - “wmNN.NN” | “wm(NN.NN%:NN.NN%)” - “tcNN.NN” | “tc(NN.NN%:NN.NN%)” - “tsNN.NN” | “ts(NN.NN%:NN.NN%)” Default: Average

  • unit (Optional[Unit]) – Unit used to filter the metric stream. Only refer to datums emitted to the metric stream with the given unit and ignore all others. Only useful when datums are being emitted to the same metric stream under different units. The default is to use all matric datums in the stream, regardless of unit, which is recommended in nearly all cases. CloudWatch does not honor this property for graphs. Default: - All metric datums in the given metric stream

Default:

Average over 5 minutes

Deprecated:

Use NetworkTargetGroup.metrics.healthyHostCount instead

Stability:

deprecated

Return type:

Metric

metric_un_healthy_host_count(*, account=None, color=None, dimensions_map=None, label=None, period=None, region=None, statistic=None, unit=None)

(deprecated) The number of targets that are considered unhealthy.

Parameters:
  • account (Optional[str]) – Account which this metric comes from. Default: - Deployment account.

  • color (Optional[str]) – The hex color code, prefixed with ‘#’ (e.g. ‘#00ff00’), to use when this metric is rendered on a graph. The Color class has a set of standard colors that can be used here. Default: - Automatic color

  • dimensions_map (Optional[Mapping[str, str]]) – Dimensions of the metric. Default: - No dimensions.

  • label (Optional[str]) –

    Label for this metric when added to a Graph in a Dashboard. You can use dynamic labels to show summary information about the entire displayed time series in the legend. For example, if you use:: [max: ${MAX}] MyMetric As the metric label, the maximum value in the visible range will be shown next to the time series name in the graph’s legend. Default: - No label

  • period (Optional[Duration]) – The period over which the specified statistic is applied. Default: Duration.minutes(5)

  • region (Optional[str]) – Region which this metric comes from. Default: - Deployment region.

  • statistic (Optional[str]) – What function to use for aggregating. Use the aws_cloudwatch.Stats helper class to construct valid input strings. Can be one of the following: - “Minimum” | “min” - “Maximum” | “max” - “Average” | “avg” - “Sum” | “sum” - “SampleCount | “n” - “pNN.NN” - “tmNN.NN” | “tm(NN.NN%:NN.NN%)” - “iqm” - “wmNN.NN” | “wm(NN.NN%:NN.NN%)” - “tcNN.NN” | “tc(NN.NN%:NN.NN%)” - “tsNN.NN” | “ts(NN.NN%:NN.NN%)” Default: Average

  • unit (Optional[Unit]) – Unit used to filter the metric stream. Only refer to datums emitted to the metric stream with the given unit and ignore all others. Only useful when datums are being emitted to the same metric stream under different units. The default is to use all matric datums in the stream, regardless of unit, which is recommended in nearly all cases. CloudWatch does not honor this property for graphs. Default: - All metric datums in the given metric stream

Default:

Average over 5 minutes

Deprecated:

Use NetworkTargetGroup.metrics.healthyHostCount instead

Stability:

deprecated

Return type:

Metric

register_listener(listener)

Register a listener that is load balancing to this target group.

Don’t call this directly. It will be called by listeners.

Parameters:

listener (INetworkListener) –

Return type:

None

set_attribute(key, value=None)

Set a non-standard attribute on the target group.

Parameters:
  • key (str) –

  • value (Optional[str]) –

See:

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes

Return type:

None

to_string()

Returns a string representation of this construct.

Return type:

str

Attributes

first_load_balancer_full_name

Full name of first load balancer.

health_check

Health check for the members of this target group.

load_balancer_arns

A token representing a list of ARNs of the load balancers that route traffic to this target group.

load_balancer_attached

List of constructs that need to be depended on to ensure the TargetGroup is associated to a load balancer.

metrics

All metrics available for this target group.

node

The tree node.

target_group_arn

The ARN of the target group.

target_group_full_name

The full name of the target group.

target_group_load_balancer_arns

ARNs of load balancers load balancing to this TargetGroup.

target_group_name

The name of the target group.

Static Methods

classmethod from_target_group_attributes(scope, id, *, target_group_arn, load_balancer_arns=None)

Import an existing target group.

Parameters:
  • scope (Construct) –

  • id (str) –

  • target_group_arn (str) – ARN of the target group.

  • load_balancer_arns (Optional[str]) – A Token representing the list of ARNs for the load balancer routing to this target group.

Return type:

INetworkTargetGroup

classmethod is_construct(x)

Checks if x is a construct.

Use this method instead of instanceof to properly detect Construct instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the constructs library on disk are seen as independent, completely different libraries. As a consequence, the class Construct in each copy of the constructs library is seen as a different class, and an instance of one class will not test as instanceof the other class. npm install will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the constructs library can be accidentally installed, and instanceof will behave unpredictably. It is safest to avoid using instanceof, and using this type-testing method instead.

Parameters:

x (Any) – Any object.

Return type:

bool

Returns:

true if x is an object created from a class which extends Construct.