NetworkListener

class aws_cdk.aws_elasticloadbalancingv2.NetworkListener(scope, id, *, load_balancer, alpn_policy=None, certificates=None, default_action=None, default_target_groups=None, port, protocol=None, ssl_policy=None)

Bases: aws_cdk.aws_elasticloadbalancingv2.BaseListener

Define a Network Listener.

Resource

AWS::ElasticLoadBalancingV2::Listener

Example:

from aws_cdk.aws_apigatewayv2_integrations import HttpNlbIntegration


vpc = ec2.Vpc(self, "VPC")
lb = elbv2.NetworkLoadBalancer(self, "lb", vpc=vpc)
listener = lb.add_listener("listener", port=80)
listener.add_targets("target",
    port=80
)

http_endpoint = apigwv2.HttpApi(self, "HttpProxyPrivateApi",
    default_integration=HttpNlbIntegration(
        listener=listener
    )
)
Parameters
  • scope (Construct) –

  • id (str) –

  • load_balancer (INetworkLoadBalancer) – The load balancer to attach this listener to.

  • alpn_policy (Optional[AlpnPolicy]) – Application-Layer Protocol Negotiation (ALPN) is a TLS extension that is sent on the initial TLS handshake hello messages. ALPN enables the application layer to negotiate which protocols should be used over a secure connection, such as HTTP/1 and HTTP/2. Can only be specified together with Protocol TLS. Default: - None

  • certificates (Optional[Sequence[IListenerCertificate]]) – Certificate list of ACM cert ARNs. You must provide exactly one certificate if the listener protocol is HTTPS or TLS. Default: - No certificates.

  • default_action (Optional[NetworkListenerAction]) – Default action to take for requests to this listener. This allows full control of the default Action of the load balancer, including weighted forwarding. See the NetworkListenerAction class for all options. Cannot be specified together with defaultTargetGroups. Default: - None.

  • default_target_groups (Optional[Sequence[INetworkTargetGroup]]) – Default target groups to load balance to. All target groups will be load balanced to with equal weight and without stickiness. For a more complex configuration than that, use either defaultAction or addAction(). Cannot be specified together with defaultAction. Default: - None.

  • port (Union[int, float]) – The port on which the listener listens for requests.

  • protocol (Optional[Protocol]) – Protocol for listener, expects TCP, TLS, UDP, or TCP_UDP. Default: - TLS if certificates are provided. TCP otherwise.

  • ssl_policy (Optional[SslPolicy]) – SSL Policy. Default: - Current predefined security policy.

Methods

add_action(_id, *, action)

Perform the given Action on incoming requests.

This allows full control of the default Action of the load balancer, including weighted forwarding. See the NetworkListenerAction class for all options.

Parameters
Return type

None

add_target_groups(_id, *target_groups)

Load balance incoming requests to the given target groups.

All target groups will be load balanced to with equal weight and without stickiness. For a more complex configuration than that, use addAction().

Parameters
Return type

None

add_targets(id, *, deregistration_delay=None, health_check=None, port, preserve_client_ip=None, protocol=None, proxy_protocol_v2=None, target_group_name=None, targets=None)

Load balance incoming requests to the given load balancing targets.

This method implicitly creates a NetworkTargetGroup for the targets involved, and a ‘forward’ action to route traffic to the given TargetGroup.

If you want more control over the precise setup, create the TargetGroup and use addAction yourself.

It’s possible to add conditions to the targets added in this way. At least one set of targets must be added without conditions.

Parameters
  • id (str) –

  • 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: Duration.minutes(5)

  • health_check (Optional[HealthCheck]) – Health check configuration. Default: No health check

  • port (Union[int, float]) – The port on which the listener listens for requests. Default: Determined from protocol if known

  • 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: - inherits the protocol of the listener

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

  • 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

  • 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.

Return type

NetworkTargetGroup

Returns

The newly created target group

apply_removal_policy(policy)

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you’ve removed it from the CDK application or because you’ve made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).

Parameters

policy (RemovalPolicy) –

Return type

None

to_string()

Returns a string representation of this construct.

Return type

str

Attributes

env

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.

Return type

ResourceEnvironment

listener_arn

true

Type

attribute

Return type

str

load_balancer

The load balancer this listener is attached to.

Return type

INetworkLoadBalancer

node

The construct tree node associated with this construct.

Return type

ConstructNode

stack

The stack in which this resource is defined.

Return type

Stack

Static Methods

classmethod from_lookup(scope, id, *, listener_protocol=None, listener_port=None, load_balancer_arn=None, load_balancer_tags=None)

Looks up a network listener.

Parameters
  • scope (Construct) –

  • id (str) –

  • listener_protocol (Optional[Protocol]) – Protocol of the listener port. Default: - listener is not filtered by protocol

  • listener_port (Union[int, float, None]) – Filter listeners by listener port. Default: - does not filter by listener port

  • load_balancer_arn (Optional[str]) – Filter listeners by associated load balancer arn. Default: - does not filter by load balancer arn

  • load_balancer_tags (Optional[Mapping[str, str]]) – Filter listeners by associated load balancer tags. Default: - does not filter by load balancer tags

Return type

INetworkListener

classmethod from_network_listener_arn(scope, id, network_listener_arn)

Import an existing listener.

Parameters
  • scope (Construct) –

  • id (str) –

  • network_listener_arn (str) –

Return type

INetworkListener

classmethod is_construct(x)

Return whether the given object is a Construct.

Parameters

x (Any) –

Return type

bool

classmethod is_resource(construct)

Check whether the given construct is a Resource.

Parameters

construct (IConstruct) –

Return type

bool