ApplicationListener

class aws_cdk.aws_elasticloadbalancingv2.ApplicationListener(scope, id, *, load_balancer, certificate_arns=None, certificates=None, default_action=None, default_target_groups=None, open=None, port=None, protocol=None, ssl_policy=None)

Bases: aws_cdk.aws_elasticloadbalancingv2.BaseListener

Define an ApplicationListener.

resource: :resource:: AWS::ElasticLoadBalancingV2::Listener

__init__(scope, id, *, load_balancer, certificate_arns=None, certificates=None, default_action=None, default_target_groups=None, open=None, port=None, protocol=None, ssl_policy=None)
Parameters
  • scope (Construct) –

  • id (str) –

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

  • certificate_arns (Optional[List[str]]) – The certificates to use on this listener. Default: - No certificates.

  • certificates (Optional[List[IListenerCertificate]]) – Certificate list of ACM cert ARNs. Default: - No certificates.

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

  • default_target_groups (Optional[List[IApplicationTargetGroup]]) – 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.

  • open (Optional[bool]) – Allow anyone to connect to this listener. If this is specified, the listener will be opened up to anyone who can reach it. For internal load balancers this is anyone in the same VPC. For public load balancers, this is anyone on the internet. If you want to be more selective about who can access this load balancer, set this to false and use the listener’s connections object to selectively grant access to the listener. Default: true

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

  • protocol (Optional[ApplicationProtocol]) – The protocol to use. Default: - Determined from port if known.

  • ssl_policy (Optional[SslPolicy]) – The security policy that defines which ciphers and protocols are supported. Default: - The current predefined security policy.

Return type

None

Methods

add_action(id, *, action, conditions=None, host_header=None, path_pattern=None, path_patterns=None, priority=None)

Perform the given default action on incoming requests.

This allows full control of the default action of the load balancer, including Action chaining, fixed responses and redirect responses. See the ListenerAction class for all options.

It’s possible to add routing conditions to the Action added in this way. At least one Action must be added without conditions (which becomes the default Action).

Parameters
  • id (str) –

  • action (ListenerAction) – Action to perform.

  • conditions (Optional[List[ListenerCondition]]) – Rule applies if matches the conditions. Default: - No conditions.

  • host_header (Optional[str]) – Rule applies if the requested host matches the indicated host. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No host condition

  • path_pattern (Optional[str]) – Rule applies if the requested path matches the given path pattern. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No path condition

  • path_patterns (Optional[List[str]]) – Rule applies if the requested path matches any of the given patterns. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: - No path condition.

  • priority (Union[int, float, None]) – Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults

Return type

None

add_certificate_arns(id, arns)

Add one or more certificates to this listener.

After the first certificate, this creates ApplicationListenerCertificates resources since cloudformation requires the certificates array on the listener resource to have a length of 1.

Parameters
  • id (str) –

  • arns (List[str]) –

deprecated :deprecated: Use addCertificates instead.

stability :stability: deprecated

Return type

None

add_certificates(id, certificates)

Add one or more certificates to this listener.

After the first certificate, this creates ApplicationListenerCertificates resources since cloudformation requires the certificates array on the listener resource to have a length of 1.

Parameters
Return type

None

add_fixed_response(id, *, conditions=None, host_header=None, path_pattern=None, path_patterns=None, priority=None, status_code, content_type=None, message_body=None)

Add a fixed response.

Parameters
  • id (str) –

  • conditions (Optional[List[ListenerCondition]]) – Rule applies if matches the conditions. Default: - No conditions.

  • host_header (Optional[str]) – Rule applies if the requested host matches the indicated host. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No host condition

  • path_pattern (Optional[str]) – Rule applies if the requested path matches the given path pattern. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No path condition

  • path_patterns (Optional[List[str]]) – Rule applies if the requested path matches any of the given patterns. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: - No path condition.

  • priority (Union[int, float, None]) – Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults

  • status_code (str) – The HTTP response code (2XX, 4XX or 5XX).

  • content_type (Optional[ContentType]) – The content type. Default: text/plain

  • message_body (Optional[str]) – The message. Default: no message

deprecated :deprecated: Use addAction() instead

stability :stability: deprecated

Return type

None

add_redirect_response(id, *, conditions=None, host_header=None, path_pattern=None, path_patterns=None, priority=None, status_code, host=None, path=None, port=None, protocol=None, query=None)

Add a redirect response.

Parameters
  • id (str) –

  • conditions (Optional[List[ListenerCondition]]) – Rule applies if matches the conditions. Default: - No conditions.

  • host_header (Optional[str]) – Rule applies if the requested host matches the indicated host. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No host condition

  • path_pattern (Optional[str]) – Rule applies if the requested path matches the given path pattern. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No path condition

  • path_patterns (Optional[List[str]]) – Rule applies if the requested path matches any of the given patterns. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: - No path condition.

  • priority (Union[int, float, None]) – Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults

  • status_code (str) – The HTTP redirect code (HTTP_301 or HTTP_302).

  • host (Optional[str]) – The hostname. This component is not percent-encoded. The hostname can contain #{host}. Default: origin host of request

  • path (Optional[str]) – The absolute path, starting with the leading “/”. This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}. Default: origin path of request

  • port (Optional[str]) – The port. You can specify a value from 1 to 65535 or #{port}. Default: origin port of request

  • protocol (Optional[str]) – The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. Default: origin protocol of request

  • query (Optional[str]) – The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading “?”, as it is automatically added. You can specify any of the reserved keywords. Default: origin query string of request

deprecated :deprecated: Use addAction() instead

stability :stability: deprecated

Return type

None

add_target_groups(id, *, target_groups, conditions=None, host_header=None, path_pattern=None, path_patterns=None, priority=None)

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().

It’s possible to add routing conditions to the TargetGroups added in this way. At least one TargetGroup must be added without conditions (which will become the default Action for this listener).

Parameters
  • id (str) –

  • target_groups (List[IApplicationTargetGroup]) – Target groups to forward requests to.

  • conditions (Optional[List[ListenerCondition]]) – Rule applies if matches the conditions. Default: - No conditions.

  • host_header (Optional[str]) – Rule applies if the requested host matches the indicated host. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No host condition

  • path_pattern (Optional[str]) – Rule applies if the requested path matches the given path pattern. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No path condition

  • path_patterns (Optional[List[str]]) – Rule applies if the requested path matches any of the given patterns. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: - No path condition.

  • priority (Union[int, float, None]) – Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults

Return type

None

add_targets(id, *, deregistration_delay=None, health_check=None, port=None, protocol=None, slow_start=None, stickiness_cookie_duration=None, target_group_name=None, targets=None, conditions=None, host_header=None, path_pattern=None, path_patterns=None, priority=None)

Load balance incoming requests to the given load balancing targets.

This method implicitly creates an ApplicationTargetGroup 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, None]) – The port on which the listener listens for requests. Default: Determined from protocol if known

  • protocol (Optional[ApplicationProtocol]) – The protocol to use. Default: Determined from port if known

  • slow_start (Optional[Duration]) – The time period during which the load balancer sends a newly registered target a linearly increasing share of the traffic to the target group. The range is 30-900 seconds (15 minutes). Default: 0

  • stickiness_cookie_duration (Optional[Duration]) – The stickiness cookie expiration period. Setting this value enables load balancer stickiness. After this period, the cookie is considered stale. The minimum value is 1 second and the maximum value is 7 days (604800 seconds). Default: Stickiness disabled

  • 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[List[IApplicationLoadBalancerTarget]]) – The targets to add to this target group. Can be Instance, IPAddress, or any self-registering load balancing target. All target must be of the same type.

  • conditions (Optional[List[ListenerCondition]]) – Rule applies if matches the conditions. Default: - No conditions.

  • host_header (Optional[str]) – Rule applies if the requested host matches the indicated host. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No host condition

  • path_pattern (Optional[str]) – Rule applies if the requested path matches the given path pattern. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: No path condition

  • path_patterns (Optional[List[str]]) – Rule applies if the requested path matches any of the given patterns. May contain up to three ‘*’ wildcards. Requires that priority is set. Default: - No path condition.

  • priority (Union[int, float, None]) – Priority of this target group. The rule with the lowest priority will be used for every request. If priority is not given, these target groups will be added as defaults, and must not have conditions. Priorities must be unique. Default: Target groups are used as defaults

return :rtype: ApplicationTargetGroup :return: The newly created target group

register_connectable(connectable, port_range)

Register that a connectable that has been added to this load balancer.

Don’t call this directly. It is called by ApplicationTargetGroup.

Parameters
Return type

None

to_string()

Returns a string representation of this construct.

Return type

str

Attributes

connections

Manage connections to this ApplicationListener.

Return type

Connections

listener_arn

attribute: :attribute:: true

Return type

str

load_balancer

Load balancer this listener is associated with.

Return type

IApplicationLoadBalancer

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_application_listener_attributes(scope, id, *, listener_arn, default_port=None, security_group=None, security_group_allows_all_outbound=None, security_group_id=None)

Import an existing listener.

Parameters
  • scope (Construct) –

  • id (str) –

  • listener_arn (str) – ARN of the listener.

  • default_port (Union[int, float, None]) – The default port on which this listener is listening.

  • security_group (Optional[ISecurityGroup]) – Security group of the load balancer this listener is associated with.

  • security_group_allows_all_outbound (Optional[bool]) – Whether the imported security group allows all outbound traffic or not when imported using securityGroupId. Unless set to false, no egress rules will be added to the security group. Default: true

  • security_group_id (Optional[str]) – Security group ID of the load balancer this listener is associated with.

Return type

IApplicationListener

classmethod is_construct(x)

Return whether the given object is a Construct.

Parameters

x (Any) –

Return type

bool