# ApplicationLoadBalancedTaskImageOptions

- Source: [`aws-ecs-patterns/lib/base/application-load-balanced-service-base.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ecs-patterns/lib/base/application-load-balanced-service-base.ts#L297)
- Type last changed: v2.50.0 · 1 Nov 2022

## Example

```ts
declare const cluster: ecs.Cluster;
const loadBalancedFargateService = new ecsPatterns.ApplicationLoadBalancedFargateService(this, 'Service', {
  cluster,
  memoryLimitMiB: 1024,
  desiredCount: 1,
  cpu: 512,
  taskImageOptions: {
    image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample"),
  },
  minHealthyPercent: 100,
  taskSubnets: {
    subnets: [ec2.Subnet.fromSubnetId(this, 'subnet', 'VpcISOLATEDSubnet1Subnet80F07FA0')],
  },
  loadBalancerName: 'application-lb-name',
});
```

## Properties

- `command`: string[] = none — The command that's passed to the container.

  If there are multiple arguments, make sure that each argument is a separated string in the array.

  This parameter maps to `Cmd` in the [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) section
  of the [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) and the `COMMAND` parameter to
  [docker run](https://docs.docker.com/engine/reference/commandline/run/).

  For more information about the Docker `CMD` parameter, see https://docs.docker.com/engine/reference/builder/#cmd.

- `containerName`: string = none — The container name value to be specified in the task definition.

- `containerPort`: number = 80 — The port number on the container that is bound to the user-specified or automatically assigned host port.

  If you are using containers in a task with the awsvpc or host network mode, exposed ports should be specified using containerPort.
  If you are using containers in a task with the bridge network mode and you specify a container port and not a host port,
  your container automatically receives a host port in the ephemeral port range.

  Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.

  For more information, see
  [hostPort](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PortMapping.html#ECS-Type-PortMapping-hostPort).

- `dockerLabels`: { [key: string]: string } — A key/value map of labels to add to the container.

  **Default:** No labels.

- `enableLogging`: boolean = true — Flag to indicate whether to enable logging.

- `entryPoint`: string[] = none — The entry point that's passed to the container.

  This parameter maps to `Entrypoint` in the [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) section
  of the [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) and the `--entrypoint` option to
  [docker run](https://docs.docker.com/engine/reference/commandline/run/).

  For more information about the Docker `ENTRYPOINT` parameter, see https://docs.docker.com/engine/reference/builder/#entrypoint.

- `environment`: { [key: string]: string } — The environment variables to pass to the container.

  **Default:** No environment variables.

- `executionRole`: [IRole](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IRole.html) — The name of the task execution IAM role that grants the Amazon ECS container agent permission to call AWS APIs on your behalf.

  **Default:** No value

- `family`: string — The name of a family that this task definition is registered to.

  **Default:** Automatically generated name.

  A family groups multiple versions of a task definition.

- `image`: [ContainerImage](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.ContainerImage.html) (required) = none — The image used to start a container.

  Image or taskDefinition must be specified, not both.

- `logDriver`: [LogDriver](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.LogDriver.html) — The log driver to use.

  **Default:** AwsLogDriver if enableLogging is true

- `secrets`: { [key: string]: [Secret](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.Secret.html) } — The secret to expose to the container as an environment variable.

  **Default:** No secret environment variables.

- `taskRole`: [IRole](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IRole.html) — The name of the task IAM role that grants containers in the task permission to call AWS APIs on your behalf.

  **Default:** A task role is automatically created for you.
