class ApplicationListenerRule (construct)
Language | Type name |
---|---|
![]() | Amazon.CDK.AWS.ElasticLoadBalancingV2.ApplicationListenerRule |
![]() | github.com/aws/aws-cdk-go/awscdk/v2/awselasticloadbalancingv2#ApplicationListenerRule |
![]() | software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationListenerRule |
![]() | aws_cdk.aws_elasticloadbalancingv2.ApplicationListenerRule |
![]() | aws-cdk-lib » aws_elasticloadbalancingv2 » ApplicationListenerRule |
Implements
IConstruct
, IDependable
Define a new listener rule.
Example
import * as lambda from 'aws-cdk-lib/aws-lambda';
declare const cluster: ecs.Cluster;
declare const taskDefinition: ecs.TaskDefinition;
declare const lambdaHook: lambda.Function;
declare const blueTargetGroup: elbv2.ApplicationTargetGroup;
declare const greenTargetGroup: elbv2.ApplicationTargetGroup;
declare const prodListenerRule: elbv2.ApplicationListenerRule;
const service = new ecs.FargateService(this, 'Service', {
cluster,
taskDefinition,
deploymentStrategy: ecs.DeploymentStrategy.BLUE_GREEN,
});
service.addLifecycleHook(new ecs.DeploymentLifecycleLambdaTarget(lambdaHook, 'PreScaleHook', {
lifecycleStages: [ecs.DeploymentLifecycleStage.PRE_SCALE_UP],
}));
const target = service.loadBalancerTarget({
containerName: 'nginx',
containerPort: 80,
protocol: ecs.Protocol.TCP,
alternateTarget: new ecs.AlternateTarget('AlternateTarget', {
alternateTargetGroup: greenTargetGroup,
productionListener: ecs.ListenerRuleConfiguration.applicationListenerRule(prodListenerRule),
}),
});
target.attachToApplicationTargetGroup(blueTargetGroup);
Initializer
new ApplicationListenerRule(scope: Construct, id: string, props: ApplicationListenerRuleProps)
Parameters
- scope
Construct
- id
string
- props
Application
Listener Rule Props
Construct Props
Name | Type | Description |
---|---|---|
listener | IApplication | The listener to attach the rule to. |
priority | number | Priority of the rule. |
action? | Listener | Action to perform when requests are received. |
conditions? | Listener [] | Rule applies if matches the conditions. |
target | IApplication [] | Target groups to forward requests to. |
listener
Type:
IApplication
The listener to attach the rule to.
priority
Type:
number
Priority of the rule.
The rule with the lowest priority will be used for every request.
Priorities must be unique.
action?
Type:
Listener
(optional, default: No action)
Action to perform when requests are received.
Only one of action
, fixedResponse
, redirectResponse
or targetGroups
can be specified.
conditions?
Type:
Listener
[]
(optional, default: No conditions.)
Rule applies if matches the conditions.
See also: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html
targetGroups?
Type:
IApplication
[]
(optional, default: No target groups.)
Target groups to forward requests to.
Only one of action
, fixedResponse
, redirectResponse
or targetGroups
can be specified.
Implies a forward
action.
Properties
Name | Type | Description |
---|---|---|
listener | string | The ARN of this rule. |
node | Node | The tree node. |
listenerRuleArn
Type:
string
The ARN of this rule.
node
Type:
Node
The tree node.
Methods
Name | Description |
---|---|
add | Add a non-standard condition to this rule. |
configure | Configure the action to perform for this rule. |
to | Returns a string representation of this construct. |
addCondition(condition)
public addCondition(condition: ListenerCondition): void
Parameters
- condition
Listener
Condition
Add a non-standard condition to this rule.
configureAction(action)
public configureAction(action: ListenerAction): void
Parameters
- action
Listener
Action
Configure the action to perform for this rule.
toString()
public toString(): string
Returns
string
Returns a string representation of this construct.