Copyright | (c) 2013-2015 Brendan Hay |
---|---|
License | Mozilla Public License, v. 2.0. |
Maintainer | Brendan Hay <brendan.g.hay@gmail.com> |
Stability | auto-generated |
Portability | non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
Modify the desired count or task definition used in a service.
You can add to or subtract from the number of instantiations of a task
definition in a service by specifying the cluster that the service is
running in and a new desiredCount
parameter.
You can use UpdateService
to modify your task definition and deploy a
new version of your service, one task at a time. If you modify the task
definition with UpdateService
, Amazon ECS spawns a task with the new
version of the task definition and then stops an old task after the new
version is running. Because UpdateService
starts a new version of the
task before stopping an old version, your cluster must have capacity to
support one more instantiation of the task when UpdateService
is run.
If your cluster cannot support another instantiation of the task used in
your service, you can reduce the desired count of your service by one
before modifying the task definition.
When UpdateService replaces a task during an update, the equivalent of
'docker stop' is issued to the containers running in the task. This
results in a SIGTERM
and a 30-second timeout, after which SIGKILL
is
sent and the containers are forcibly stopped. If the container handles
the SIGTERM
gracefully and exits within 30 seconds from receiving it,
no SIGKILL
is sent.
When the service scheduler launches new tasks, it attempts to balance them across the Availability Zones in your cluster with the following logic:
- Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes).
- Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.
- Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.
See: AWS API Reference for UpdateService.
- updateService :: Text -> UpdateService
- data UpdateService
- usCluster :: Lens' UpdateService (Maybe Text)
- usDesiredCount :: Lens' UpdateService (Maybe Int)
- usTaskDefinition :: Lens' UpdateService (Maybe Text)
- usService :: Lens' UpdateService Text
- updateServiceResponse :: Int -> UpdateServiceResponse
- data UpdateServiceResponse
- usrsService :: Lens' UpdateServiceResponse (Maybe ContainerService)
- usrsResponseStatus :: Lens' UpdateServiceResponse Int
Creating a Request
Creates a value of UpdateService
with the minimum fields required to make a request.
Use one of the following lenses to modify other fields as desired:
data UpdateService Source #
See: updateService
smart constructor.
Request Lenses
usCluster :: Lens' UpdateService (Maybe Text) Source #
The short name or full Amazon Resource Name (ARN) of the cluster that your service is running on. If you do not specify a cluster, the default cluster is assumed.
usDesiredCount :: Lens' UpdateService (Maybe Int) Source #
The number of instantiations of the task to place and keep running in your service.
usTaskDefinition :: Lens' UpdateService (Maybe Text) Source #
The family
and revision
('family:revision') or full Amazon Resource
Name (ARN) of the task definition to run in your service. If a
revision
is not specified, the latest ACTIVE
revision is used. If
you modify the task definition with UpdateService
, Amazon ECS spawns a
task with the new version of the task definition and then stops an old
task after the new version is running.
Destructuring the Response
updateServiceResponse Source #
Creates a value of UpdateServiceResponse
with the minimum fields required to make a request.
Use one of the following lenses to modify other fields as desired:
data UpdateServiceResponse Source #
See: updateServiceResponse
smart constructor.
Response Lenses
usrsService :: Lens' UpdateServiceResponse (Maybe ContainerService) Source #
The full description of your service following the update call.
usrsResponseStatus :: Lens' UpdateServiceResponse Int Source #
The response status code.