# LoadBalancerTargetOptions

Properties for defining an ECS target.

The port mapping for it must already have been created through addPortMapping().

- Source: [`aws-ecs/lib/base/task-definition.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ecs/lib/base/task-definition.ts#L1220)
- Type last changed: v2.211.0 · 13 Aug 2025

## Example

```ts
declare const cluster: ecs.Cluster;
declare const taskDefinition: ecs.TaskDefinition;
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.LINEAR,
  linearConfiguration: {
    stepPercent: 10.0,
    stepBakeTime: Duration.minutes(5),
  },
});

const target = service.loadBalancerTarget({
  containerName: 'web',
  containerPort: 80,
  alternateTarget: new ecs.AlternateTarget('AlternateTarget', {
    alternateTargetGroup: greenTargetGroup,
    productionListener: ecs.ListenerRuleConfiguration.applicationListenerRule(prodListenerRule),
  }),
});

target.attachToApplicationTargetGroup(blueTargetGroup);
```

## Properties

- `alternateTarget`: [IAlternateTarget](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.IAlternateTarget.html) — Alternate target configuration for blue/green deployments.

  **Default:** No alternate target configuration

- `containerName`: string (required) — The name of the container.

- `containerPort`: number — The port number of the container.

  **Default:** Container port of the first added port mapping.

  Only applicable when using application/network load balancers.

- `protocol`: [Protocol](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.Protocol.html) = Protocol.TCP — The protocol used for the port mapping.

  Only applicable when using application load balancers.
