Class: Aws::ECS::Types::HealthCheck
- Inherits:
-
Struct
- Object
- Struct
- Aws::ECS::Types::HealthCheck
- Defined in:
- gems/aws-sdk-ecs/lib/aws-sdk-ecs/types.rb
Overview
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 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 anUNKNOWN
state and no other essential containers have anUNHEALTHY
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 isUNKNOWN
, the task health isUNHEALTHY
.If Container1 is
UNHEALTHY
and Container2 isHEALTHY
, the task health isUNHEALTHY
.If Container1 is
HEALTHY
and Container2 isUNKNOWN
, the task health isUNKNOWN
.If Container1 is
HEALTHY
and Container2 isHEALTHY
, the task health isHEALTHY
.
Consider the following task health example with 3 containers.
If Container1 is
UNHEALTHY
and Container2 isUNKNOWN
, and Container3 isUNKNOWN
, the task health isUNHEALTHY
.If Container1 is
UNHEALTHY
and Container2 isUNKNOWN
, and Container3 isHEALTHY
, the task health isUNHEALTHY
.If Container1 is
UNHEALTHY
and Container2 isHEALTHY
, and Container3 isHEALTHY
, the task health isUNHEALTHY
.If Container1 is
HEALTHY
and Container2 isUNKNOWN
, and Container3 isHEALTHY
, the task health isUNKNOWN
.If Container1 is
HEALTHY
and Container2 isUNKNOWN
, and Container3 isUNKNOWN
, the task health isUNKNOWN
.If Container1 is
HEALTHY
and Container2 isHEALTHY
, and Container3 isHEALTHY
, the task health isHEALTHY
.
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 consideredHEALTHY
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.
Constant Summary collapse
- SENSITIVE =
[]
Instance Attribute Summary collapse
-
#command ⇒ Array<String>
A string array representing the command that the container runs to determine if it is healthy.
-
#interval ⇒ Integer
The time period in seconds between each health check execution.
-
#retries ⇒ Integer
The number of times to retry a failed health check before the container is considered unhealthy.
-
#start_period ⇒ Integer
The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries.
-
#timeout ⇒ Integer
The time period in seconds to wait for a health check to succeed before it is considered a failure.
Instance Attribute Details
#command ⇒ Array<String>
A string array representing the command that the container runs to
determine if it is healthy. The string array must start with CMD
to run the command arguments directly, or CMD-SHELL
to run the
command with the container's default shell.
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.
[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
You don't include the double quotes and brackets when you use the Amazon Web Services Management Console.
CMD-SHELL, curl -f http://localhost/ || exit 1
An exit code of 0 indicates success, and non-zero exit code
indicates failure. For more information, see HealthCheck
in the
docker container create command.
5479 5480 5481 5482 5483 5484 5485 5486 5487 |
# File 'gems/aws-sdk-ecs/lib/aws-sdk-ecs/types.rb', line 5479 class HealthCheck < Struct.new( :command, :interval, :timeout, :retries, :start_period) SENSITIVE = [] include Aws::Structure end |
#interval ⇒ Integer
The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.
5479 5480 5481 5482 5483 5484 5485 5486 5487 |
# File 'gems/aws-sdk-ecs/lib/aws-sdk-ecs/types.rb', line 5479 class HealthCheck < Struct.new( :command, :interval, :timeout, :retries, :start_period) SENSITIVE = [] include Aws::Structure end |
#retries ⇒ Integer
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.
5479 5480 5481 5482 5483 5484 5485 5486 5487 |
# File 'gems/aws-sdk-ecs/lib/aws-sdk-ecs/types.rb', line 5479 class HealthCheck < Struct.new( :command, :interval, :timeout, :retries, :start_period) SENSITIVE = [] include Aws::Structure end |
#start_period ⇒ Integer
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
startPeriod
is off.
startPeriod
, then the
container is considered healthy and any subsequent failures count
toward the maximum number of retries.
5479 5480 5481 5482 5483 5484 5485 5486 5487 |
# File 'gems/aws-sdk-ecs/lib/aws-sdk-ecs/types.rb', line 5479 class HealthCheck < Struct.new( :command, :interval, :timeout, :retries, :start_period) SENSITIVE = [] include Aws::Structure end |
#timeout ⇒ Integer
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.
5479 5480 5481 5482 5483 5484 5485 5486 5487 |
# File 'gems/aws-sdk-ecs/lib/aws-sdk-ecs/types.rb', line 5479 class HealthCheck < Struct.new( :command, :interval, :timeout, :retries, :start_period) SENSITIVE = [] include Aws::Structure end |