Listener
The Listener resource allows you to manage AWS Application Load Balancer Listeners and their associated settings.
Minimal Example
Section titled “Minimal Example”Create a basic listener for an Application Load Balancer with the required properties and some common optional settings.
import AWS from "alchemy/aws/control";
const applicationLoadBalancerListener = await AWS.ElasticLoadBalancingV2.Listener("myListener", { LoadBalancerArn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-loadbalancer/50dc6c495c0c9188", DefaultActions: [ { Type: "forward", TargetGroupArn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-target-group/73e2d6bc24d9a0c6" } ], Port: 443, Protocol: "HTTPS", SslPolicy: "ELBSecurityPolicy-2016-08", Certificates: [ { CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/12345678-abcd-1234-abcd-12345678abcd" } ]});
Advanced Configuration
Section titled “Advanced Configuration”Configure a listener with advanced settings such as mutual authentication and ALPN policy.
const advancedListener = await AWS.ElasticLoadBalancingV2.Listener("advancedListener", { LoadBalancerArn: "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-advanced-loadbalancer/50dc6c495c0c9188", DefaultActions: [ { Type: "redirect", RedirectConfig: { Host: "#{host}", Path: "/newpath", Port: "443", Protocol: "HTTPS", Query: "#{query}", StatusCode: "HTTP_301" } } ], Port: 443, Protocol: "HTTPS", SslPolicy: "ELBSecurityPolicy-TLS-1-2-2017-01", AlpnPolicy: ["HTTP/2"], MutualAuthentication: { Truststore: { CertificateArn: "arn:aws:acm:us-east-1:123456789012:certificate/abcd1234-abcd-1234-abcd-12345678abcd" }, ClientAuthEnabled: true }});
Listener with Multiple Actions
Section titled “Listener with Multiple Actions”Create a listener that handles multiple actions based on path patterns.
const multiActionListener = await AWS.ElasticLoadBalancingV2.Listener("multiActionListener", { LoadBalancerArn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-multi-action-loadbalancer/50dc6c495c0c9188", DefaultActions: [ { Type: "forward", TargetGroupArn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-app/73e2d6bc24d9a0c6" }, { Type: "forward", TargetGroupArn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-admin/73e2d6bc24d9a0c6", Conditions: [ { Field: "path-pattern", Values: ["/admin/*"] } ] } ], Port: 80, Protocol: "HTTP"});