AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.
An object representing a container health check. Health check parameters that are
specified in a container definition override any Docker health checks that exist in
the container image (such as those specified in a parent image or from the image's
Dockerfile). This configuration maps to the
The Amazon ECS container agent only monitors and reports on the health checks specified
in the task definition. Amazon ECS does not monitor Docker health checks that are
embedded in a container image and not specified in the container definition. Health
check parameters that are specified in a container definition override any Docker
health checks that exist in the container image.
HEALTHCHECK
parameter of docker
run.
You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.
The health check is designed to make sure that your containers survive agent restarts, upgrades, or temporary unavailability.
Amazon ECS performs health checks on containers with the default that launched the container instance or the task.
The following describes the possible healthStatus
values for a container:
HEALTHY
-The container health check has passed successfully.
UNHEALTHY
-The container health check has failed.
UNKNOWN
-The container health check is being evaluated, there's no container
health check defined, or Amazon ECS doesn't have the health status of the container.
The following describes the possible healthStatus
values based on the container
health checker status of essential containers in the task with the following priority
order (high to low):
UNHEALTHY
-One or more essential containers have failed their health check.
UNKNOWN
-Any essential container running within the task is in an UNKNOWN
state and no other essential containers have an UNHEALTHY
state.
HEALTHY
-All essential containers within the task have passed their health
checks.
Consider the following task health example with 2 containers.
If Container1 is UNHEALTHY
and Container2 is UNKNOWN
, the task health
is UNHEALTHY
.
If Container1 is UNHEALTHY
and Container2 is HEALTHY
, the task health
is UNHEALTHY
.
If Container1 is HEALTHY
and Container2 is UNKNOWN
, the task health
is UNKNOWN
.
If Container1 is HEALTHY
and Container2 is HEALTHY
, the task health
is HEALTHY
.
Consider the following task health example with 3 containers.
If Container1 is UNHEALTHY
and Container2 is UNKNOWN
, and Container3
is UNKNOWN
, the task health is UNHEALTHY
.
If Container1 is UNHEALTHY
and Container2 is UNKNOWN
, and Container3
is HEALTHY
, the task health is UNHEALTHY
.
If Container1 is UNHEALTHY
and Container2 is HEALTHY
, and Container3
is HEALTHY
, the task health is UNHEALTHY
.
If Container1 is HEALTHY
and Container2 is UNKNOWN
, and Container3 is
HEALTHY
, the task health is UNKNOWN
.
If Container1 is HEALTHY
and Container2 is UNKNOWN
, and Container3 is
UNKNOWN
, the task health is UNKNOWN
.
If Container1 is HEALTHY
and Container2 is HEALTHY
, and Container3 is
HEALTHY
, the task health is HEALTHY
.
If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.
The following are notes about container health check support:
If the Amazon ECS container agent becomes disconnected from the Amazon ECS service,
this won't cause a container to transition to an UNHEALTHY
status. This is
by design, to ensure that containers remain running during agent restarts or temporary
unavailability. The health check status is the "last heard from" response from the
Amazon ECS agent, so if the container was considered HEALTHY
prior to the disconnect,
that status will remain until the agent reconnects and another health check occurs.
There are no assumptions made about the status of the container health checks.
Container health checks require version 1.17.0
or greater of the Amazon ECS
container agent. For more information, see Updating
the Amazon ECS container agent.
Container health checks are supported for Fargate tasks if you're using platform version
1.1.0
or greater. For more information, see Fargate
platform versions.
Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.
For an example of how to specify a task definition with multiple containers where container dependency is specified, see Container dependency in the Amazon Elastic Container Service Developer Guide.
Namespace: Amazon.ECS.Model
Assembly: AWSSDK.ECS.dll
Version: 3.x.y.z
public class HealthCheck
The HealthCheck type exposes the following members
Name | Description | |
---|---|---|
![]() |
HealthCheck() |
Name | Type | Description | |
---|---|---|---|
![]() |
Command | System.Collections.Generic.List<System.String> |
Gets and sets the property Command.
A string array representing the command that the container runs to determine if it
is healthy. The string array must start with When you use the Amazon Web Services Management Console JSON panel, the Command Line Interface, or the APIs, enclose the list of commands in double quotes and brackets.
You don't include the double quotes and brackets when you use the Amazon Web Services Management Console.
An exit code of 0 indicates success, and non-zero exit code indicates failure. For
more information, see |
![]() |
Interval | System.Int32 |
Gets and sets the property Interval.
The time period in seconds between each health check execution. You may specify between
5 and 300 seconds. The default value is 30 seconds. This value applies only when you
specify a |
![]() |
Retries | System.Int32 |
Gets and sets the property Retries.
The number of times to retry a failed health check before the container is considered
unhealthy. You may specify between 1 and 10 retries. The default value is 3. This
value applies only when you specify a |
![]() |
StartPeriod | System.Int32 |
Gets and sets the property StartPeriod.
The optional grace period to provide containers time to bootstrap before failed health
checks count towards the maximum number of retries. You can specify between 0 and
300 seconds. By default, the
If a health check succeeds within the |
![]() |
Timeout | System.Int32 |
Gets and sets the property Timeout.
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. The default value is 5. This
value applies only when you specify a |
.NET:
Supported in: 8.0 and newer, Core 3.1
.NET Standard:
Supported in: 2.0
.NET Framework:
Supported in: 4.5 and newer, 3.5