# HealthCheck

The health check command and associated configuration parameters for the container.

- Source: [`aws-ecs/lib/container-definition.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-ecs/lib/container-definition.ts#L998)

## Example

```ts
declare const vpc: ec2.Vpc;
declare const securityGroup: ec2.SecurityGroup;
const queueProcessingFargateService = new ecsPatterns.QueueProcessingFargateService(this, 'Service', {
  vpc,
  memoryLimitMiB: 512,
  image: ecs.ContainerImage.fromRegistry('test'),
  minHealthyPercent: 100,
  healthCheck: {
    command: [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ],
    // the properties below are optional
    interval: Duration.minutes(30),
    retries: 123,
    startPeriod: Duration.minutes(30),
    timeout: Duration.minutes(30),
  },
});
```

## Properties

- `command`: string[] (required) — A string array representing the command that the container runs to determine if it is healthy.

  The string array must start with CMD to execute the command arguments directly, or
  CMD-SHELL to run the command with the container's default shell.

  For example: [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]

- `interval`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.seconds(30) — The time period in seconds between each health check execution.

  You may specify between 5 and 300 seconds.

- `retries`: number = 3 — The number of times to retry a failed health check before the container is considered unhealthy.

  You may specify between 1 and 10 retries.

- `startPeriod`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) — The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries.

  **Default:** No start period

  You may specify between 0 and 300 seconds.

- `timeout`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.seconds(5) — The time period in seconds to wait for a health check to succeed before it is considered a failure.

  You may specify between 2 and 60 seconds.
