NetworkListener
- class aws_cdk.aws_elasticloadbalancingv2.NetworkListener(scope, id, *, load_balancer, port, alpn_policy=None, certificates=None, default_action=None, default_target_groups=None, protocol=None, ssl_policy=None, tcp_idle_timeout=None)
Bases:
BaseListener
Define a Network Listener.
- Resource:
AWS::ElasticLoadBalancingV2::Listener
- ExampleMetadata:
infused
Example:
# vpc: ec2.Vpc # asg: autoscaling.AutoScalingGroup # sg1: ec2.ISecurityGroup # sg2: ec2.ISecurityGroup # Create the load balancer in a VPC. 'internetFacing' is 'false' # by default, which creates an internal load balancer. lb = elbv2.NetworkLoadBalancer(self, "LB", vpc=vpc, internet_facing=True, security_groups=[sg1] ) lb.add_security_group(sg2) # Add a listener on a particular port. listener = lb.add_listener("Listener", port=443 ) # Add targets on a particular port. listener.add_targets("AppFleet", port=443, targets=[asg] )
- Parameters:
scope (
Construct
) –id (
str
) –load_balancer (
INetworkLoadBalancer
) – The load balancer to attach this listener to.port (
Union
[int
,float
]) – The port on which the listener listens for requests.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: - Nonecertificates (
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 theNetworkListenerAction
class for all options. Cannot be specified together withdefaultTargetGroups
. 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 eitherdefaultAction
oraddAction()
. Cannot be specified together withdefaultAction
. Default: - None.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.tcp_idle_timeout (
Optional
[Duration
]) – The load balancer TCP idle timeout. Default: Duration.seconds(350)
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:
_id (
str
) –action (
NetworkListenerAction
) – Action to perform.
- Return type:
None
- add_certificates(id, certificates)
Add one or more certificates to this listener.
After the first certificate, this creates NetworkListenerCertificates resources since cloudformation requires the certificates array on the listener resource to have a length of 1.
- Parameters:
id (
str
) –certificates (
Sequence
[IListenerCertificate
]) –
- 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:
_id (
str
) –target_groups (
INetworkTargetGroup
) –
- Return type:
None
- add_targets(id, *, port, deregistration_delay=None, health_check=None, 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
) –port (
Union
[int
,float
]) – The port on which the target receives traffic. Default: Determined from protocol if knownderegistration_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 (
Union
[HealthCheck
,Dict
[str
,Any
],None
]) – Health check configuration. Default: - The default value for each property in this configuration varies depending on the target.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 listenerproxy_protocol_v2 (
Optional
[bool
]) – Indicates whether Proxy Protocol version 2 is enabled. Default: falsetarget_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 generatedtargets (
Optional
[Sequence
[INetworkLoadBalancerTarget
]]) – The targets to add to this target group. Can beInstance
,IPAddress
, or any self-registering load balancing target. If you use eitherInstance
orIPAddress
as targets, all target must be of the same type.
- Return type:
- 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
- remove_attribute(key)
Remove an attribute from the listener.
- Parameters:
key (
str
) –- Return type:
None
- set_attribute(key, value=None)
Set a non-standard attribute on the listener.
- Parameters:
key (
str
) –value (
Optional
[str
]) –
- See:
- 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.
- listener_arn
ARN of the listener.
- Attribute:
true
- load_balancer
The load balancer this listener is attached to.
- node
The tree node.
- stack
The stack in which this resource is defined.
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 protocollistener_port (
Union
[int
,float
,None
]) – Filter listeners by listener port. Default: - does not filter by listener portload_balancer_arn (
Optional
[str
]) – Filter listeners by associated load balancer arn. Default: - does not filter by load balancer arnload_balancer_tags (
Optional
[Mapping
[str
,str
]]) – Filter listeners by associated load balancer tags. Default: - does not filter by load balancer tags
- Return type:
- 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:
- classmethod is_construct(x)
Checks if
x
is a construct.Use this method instead of
instanceof
to properly detectConstruct
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 classConstruct
in each copy of theconstructs
library is seen as a different class, and an instance of one class will not test asinstanceof
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 theconstructs
library can be accidentally installed, andinstanceof
will behave unpredictably. It is safest to avoid usinginstanceof
, 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 extendsConstruct
.
- classmethod is_owned_resource(construct)
Returns true if the construct was created by CDK, and false otherwise.
- Parameters:
construct (
IConstruct
) –- Return type:
bool
- classmethod is_resource(construct)
Check whether the given construct is a Resource.
- Parameters:
construct (
IConstruct
) –- Return type:
bool