Skip to content
v2.273.0

DeploymentLifecycleLambdaTargetProps Struct ​

Configuration for a lambda deployment lifecycle hook.

Example ​

ts
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);

Properties ​

lifecycleStagesDeploymentLifecycleStage[]lifecycle_stagestyping.List[DeploymentLifecycleStage]lifecycleStagesList<DeploymentLifecycleStage>LifecycleStagesDeploymentLifecycleStage[]LifecycleStages*[]DeploymentLifecycleStagerequired#
The lifecycle stages when this hook should be executed.
roleIRoleroleIRoleroleIRoleRoleIRoleRoleIRole= A unique role will be generated …#
The IAM role that grants permissions to invoke the lambda target.
default

Default: A unique role will be generated for this lambda function.

Used as props by ​