com.amazonaws.services.ecs.AmazonECSAsync Maven / Gradle / Ivy
/*
* Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
* Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.ecs;
import com.amazonaws.services.ecs.model.*;
/**
* Interface for accessing Amazon ECS asynchronously. Each asynchronous method
* will return a Java Future object representing the asynchronous operation;
* overloads which accept an {@code AsyncHandler} can be used to receive
* notification when an asynchronous operation completes.
*
*
* Amazon EC2 Container Service (Amazon ECS) is a highly scalable, fast,
* container management service that makes it easy to run, stop, and manage
* Docker containers on a cluster of EC2 instances. Amazon ECS lets you launch
* and stop container-enabled applications with simple API calls, allows you to
* get the state of your cluster from a centralized service, and gives you
* access to many familiar Amazon EC2 features like security groups, Amazon EBS
* volumes, and IAM roles.
*
*
* You can use Amazon ECS to schedule the placement of containers across your
* cluster based on your resource needs, isolation policies, and availability
* requirements. Amazon EC2 Container Service eliminates the need for you to
* operate your own cluster management and configuration management systems or
* worry about scaling your management infrastructure.
*
*/
public interface AmazonECSAsync extends AmazonECS {
/**
*
* Creates a new Amazon ECS cluster. By default, your account receives a
* default
cluster when you launch your first container
* instance. However, you can create your own cluster with a unique name
* with the CreateCluster
action.
*
*
* @param createClusterRequest
* @return A Java Future containing the result of the CreateCluster
* operation returned by the service.
* @sample AmazonECSAsync.CreateCluster
*/
java.util.concurrent.Future createClusterAsync(
CreateClusterRequest createClusterRequest);
/**
*
* Creates a new Amazon ECS cluster. By default, your account receives a
* default
cluster when you launch your first container
* instance. However, you can create your own cluster with a unique name
* with the CreateCluster
action.
*
*
* @param createClusterRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the CreateCluster
* operation returned by the service.
* @sample AmazonECSAsyncHandler.CreateCluster
*/
java.util.concurrent.Future createClusterAsync(
CreateClusterRequest createClusterRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the CreateCluster operation.
*
* @see #createClusterAsync(CreateClusterRequest)
*/
java.util.concurrent.Future createClusterAsync();
/**
* Simplified method form for invoking the CreateCluster operation with an
* AsyncHandler.
*
* @see #createClusterAsync(CreateClusterRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future createClusterAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Runs and maintains a desired number of tasks from a specified task
* definition. If the number of tasks running in a service drops below
* desiredCount
, Amazon ECS spawns another instantiation of the
* task in the specified cluster. To update an existing service, see
* UpdateService.
*
*
* You can optionally specify a deployment configuration for your service.
* During a deployment (which is triggered by changing the task definition
* of a service with an UpdateService operation), the service
* scheduler uses the minimumHealthyPercent
and
* maximumPercent
parameters to determine the deployment
* strategy.
*
*
* If the minimumHealthyPercent
is below 100%, the scheduler
* can ignore the desiredCount
temporarily during a deployment.
* For example, if your service has a desiredCount
of four
* tasks, a minimumHealthyPercent
of 50% allows the scheduler
* to stop two existing tasks before starting two new tasks. Tasks for
* services that do not use a load balancer are considered healthy if
* they are in the RUNNING
state; tasks for services that
* do use a load balancer are considered healthy if they are in the
* RUNNING
state and the container instance it is hosted on is
* reported as healthy by the load balancer. The default value for
* minimumHealthyPercent
is 50% in the console and 100% for the
* AWS CLI, the AWS SDKs, and the APIs.
*
*
* The maximumPercent
parameter represents an upper limit on
* the number of running tasks during a deployment, which enables you to
* define the deployment batch size. For example, if your service has a
* desiredCount
of four tasks, a maximumPercent
* value of 200% starts four new tasks before stopping the four older tasks
* (provided that the cluster resources required to do this are available).
* The default value for maximumPercent
is 200%.
*
*
* 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.
*
*
*
*
* @param createServiceRequest
* @return A Java Future containing the result of the CreateService
* operation returned by the service.
* @sample AmazonECSAsync.CreateService
*/
java.util.concurrent.Future createServiceAsync(
CreateServiceRequest createServiceRequest);
/**
*
* Runs and maintains a desired number of tasks from a specified task
* definition. If the number of tasks running in a service drops below
* desiredCount
, Amazon ECS spawns another instantiation of the
* task in the specified cluster. To update an existing service, see
* UpdateService.
*
*
* You can optionally specify a deployment configuration for your service.
* During a deployment (which is triggered by changing the task definition
* of a service with an UpdateService operation), the service
* scheduler uses the minimumHealthyPercent
and
* maximumPercent
parameters to determine the deployment
* strategy.
*
*
* If the minimumHealthyPercent
is below 100%, the scheduler
* can ignore the desiredCount
temporarily during a deployment.
* For example, if your service has a desiredCount
of four
* tasks, a minimumHealthyPercent
of 50% allows the scheduler
* to stop two existing tasks before starting two new tasks. Tasks for
* services that do not use a load balancer are considered healthy if
* they are in the RUNNING
state; tasks for services that
* do use a load balancer are considered healthy if they are in the
* RUNNING
state and the container instance it is hosted on is
* reported as healthy by the load balancer. The default value for
* minimumHealthyPercent
is 50% in the console and 100% for the
* AWS CLI, the AWS SDKs, and the APIs.
*
*
* The maximumPercent
parameter represents an upper limit on
* the number of running tasks during a deployment, which enables you to
* define the deployment batch size. For example, if your service has a
* desiredCount
of four tasks, a maximumPercent
* value of 200% starts four new tasks before stopping the four older tasks
* (provided that the cluster resources required to do this are available).
* The default value for maximumPercent
is 200%.
*
*
* 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.
*
*
*
*
* @param createServiceRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the CreateService
* operation returned by the service.
* @sample AmazonECSAsyncHandler.CreateService
*/
java.util.concurrent.Future createServiceAsync(
CreateServiceRequest createServiceRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Deletes the specified cluster. You must deregister all container
* instances from this cluster before you may delete it. You can list the
* container instances in a cluster with ListContainerInstances and
* deregister them with DeregisterContainerInstance.
*
*
* @param deleteClusterRequest
* @return A Java Future containing the result of the DeleteCluster
* operation returned by the service.
* @sample AmazonECSAsync.DeleteCluster
*/
java.util.concurrent.Future deleteClusterAsync(
DeleteClusterRequest deleteClusterRequest);
/**
*
* Deletes the specified cluster. You must deregister all container
* instances from this cluster before you may delete it. You can list the
* container instances in a cluster with ListContainerInstances and
* deregister them with DeregisterContainerInstance.
*
*
* @param deleteClusterRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the DeleteCluster
* operation returned by the service.
* @sample AmazonECSAsyncHandler.DeleteCluster
*/
java.util.concurrent.Future deleteClusterAsync(
DeleteClusterRequest deleteClusterRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Deletes a specified service within a cluster. You can delete a service if
* you have no running tasks in it and the desired task count is zero. If
* the service is actively maintaining tasks, you cannot delete it, and you
* must update the service to a desired task count of zero. For more
* information, see UpdateService.
*
*
*
* When you delete a service, if there are still running tasks that require
* cleanup, the service status moves from ACTIVE
to
* DRAINING
, and the service is no longer visible in the
* console or in ListServices API operations. After the tasks have
* stopped, then the service status moves from DRAINING
to
* INACTIVE
. Services in the DRAINING
or
* INACTIVE
status can still be viewed with
* DescribeServices API operations; however, in the future,
* INACTIVE
services may be cleaned up and purged from Amazon
* ECS record keeping, and DescribeServices API operations on those
* services will return a ServiceNotFoundException
error.
*
*
*
* @param deleteServiceRequest
* @return A Java Future containing the result of the DeleteService
* operation returned by the service.
* @sample AmazonECSAsync.DeleteService
*/
java.util.concurrent.Future deleteServiceAsync(
DeleteServiceRequest deleteServiceRequest);
/**
*
* Deletes a specified service within a cluster. You can delete a service if
* you have no running tasks in it and the desired task count is zero. If
* the service is actively maintaining tasks, you cannot delete it, and you
* must update the service to a desired task count of zero. For more
* information, see UpdateService.
*
*
*
* When you delete a service, if there are still running tasks that require
* cleanup, the service status moves from ACTIVE
to
* DRAINING
, and the service is no longer visible in the
* console or in ListServices API operations. After the tasks have
* stopped, then the service status moves from DRAINING
to
* INACTIVE
. Services in the DRAINING
or
* INACTIVE
status can still be viewed with
* DescribeServices API operations; however, in the future,
* INACTIVE
services may be cleaned up and purged from Amazon
* ECS record keeping, and DescribeServices API operations on those
* services will return a ServiceNotFoundException
error.
*
*
*
* @param deleteServiceRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the DeleteService
* operation returned by the service.
* @sample AmazonECSAsyncHandler.DeleteService
*/
java.util.concurrent.Future deleteServiceAsync(
DeleteServiceRequest deleteServiceRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Deregisters an Amazon ECS container instance from the specified cluster.
* This instance is no longer available to run tasks.
*
*
* If you intend to use the container instance for some other purpose after
* deregistration, you should stop all of the tasks running on the container
* instance before deregistration to avoid any orphaned tasks from consuming
* resources.
*
*
* Deregistering a container instance removes the instance from a cluster,
* but it does not terminate the EC2 instance; if you are finished using the
* instance, be sure to terminate it in the Amazon EC2 console to stop
* billing.
*
*
*
* When you terminate a container instance, it is automatically deregistered
* from your cluster.
*
*
*
* @param deregisterContainerInstanceRequest
* @return A Java Future containing the result of the
* DeregisterContainerInstance operation returned by the service.
* @sample AmazonECSAsync.DeregisterContainerInstance
*/
java.util.concurrent.Future deregisterContainerInstanceAsync(
DeregisterContainerInstanceRequest deregisterContainerInstanceRequest);
/**
*
* Deregisters an Amazon ECS container instance from the specified cluster.
* This instance is no longer available to run tasks.
*
*
* If you intend to use the container instance for some other purpose after
* deregistration, you should stop all of the tasks running on the container
* instance before deregistration to avoid any orphaned tasks from consuming
* resources.
*
*
* Deregistering a container instance removes the instance from a cluster,
* but it does not terminate the EC2 instance; if you are finished using the
* instance, be sure to terminate it in the Amazon EC2 console to stop
* billing.
*
*
*
* When you terminate a container instance, it is automatically deregistered
* from your cluster.
*
*
*
* @param deregisterContainerInstanceRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the
* DeregisterContainerInstance operation returned by the service.
* @sample AmazonECSAsyncHandler.DeregisterContainerInstance
*/
java.util.concurrent.Future deregisterContainerInstanceAsync(
DeregisterContainerInstanceRequest deregisterContainerInstanceRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Deregisters the specified task definition by family and revision. Upon
* deregistration, the task definition is marked as INACTIVE
.
* Existing tasks and services that reference an INACTIVE
task
* definition continue to run without disruption. Existing services that
* reference an INACTIVE
task definition can still scale up or
* down by modifying the service's desired count.
*
*
* You cannot use an INACTIVE
task definition to run new tasks
* or create new services, and you cannot update an existing service to
* reference an INACTIVE
task definition (although there may be
* up to a 10 minute window following deregistration where these
* restrictions have not yet taken effect).
*
*
* @param deregisterTaskDefinitionRequest
* @return A Java Future containing the result of the
* DeregisterTaskDefinition operation returned by the service.
* @sample AmazonECSAsync.DeregisterTaskDefinition
*/
java.util.concurrent.Future deregisterTaskDefinitionAsync(
DeregisterTaskDefinitionRequest deregisterTaskDefinitionRequest);
/**
*
* Deregisters the specified task definition by family and revision. Upon
* deregistration, the task definition is marked as INACTIVE
.
* Existing tasks and services that reference an INACTIVE
task
* definition continue to run without disruption. Existing services that
* reference an INACTIVE
task definition can still scale up or
* down by modifying the service's desired count.
*
*
* You cannot use an INACTIVE
task definition to run new tasks
* or create new services, and you cannot update an existing service to
* reference an INACTIVE
task definition (although there may be
* up to a 10 minute window following deregistration where these
* restrictions have not yet taken effect).
*
*
* @param deregisterTaskDefinitionRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the
* DeregisterTaskDefinition operation returned by the service.
* @sample AmazonECSAsyncHandler.DeregisterTaskDefinition
*/
java.util.concurrent.Future deregisterTaskDefinitionAsync(
DeregisterTaskDefinitionRequest deregisterTaskDefinitionRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Describes one or more of your clusters.
*
*
* @param describeClustersRequest
* @return A Java Future containing the result of the DescribeClusters
* operation returned by the service.
* @sample AmazonECSAsync.DescribeClusters
*/
java.util.concurrent.Future describeClustersAsync(
DescribeClustersRequest describeClustersRequest);
/**
*
* Describes one or more of your clusters.
*
*
* @param describeClustersRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the DescribeClusters
* operation returned by the service.
* @sample AmazonECSAsyncHandler.DescribeClusters
*/
java.util.concurrent.Future describeClustersAsync(
DescribeClustersRequest describeClustersRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the DescribeClusters operation.
*
* @see #describeClustersAsync(DescribeClustersRequest)
*/
java.util.concurrent.Future describeClustersAsync();
/**
* Simplified method form for invoking the DescribeClusters operation with
* an AsyncHandler.
*
* @see #describeClustersAsync(DescribeClustersRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future describeClustersAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Describes Amazon EC2 Container Service container instances. Returns
* metadata about registered and remaining resources on each container
* instance requested.
*
*
* @param describeContainerInstancesRequest
* @return A Java Future containing the result of the
* DescribeContainerInstances operation returned by the service.
* @sample AmazonECSAsync.DescribeContainerInstances
*/
java.util.concurrent.Future describeContainerInstancesAsync(
DescribeContainerInstancesRequest describeContainerInstancesRequest);
/**
*
* Describes Amazon EC2 Container Service container instances. Returns
* metadata about registered and remaining resources on each container
* instance requested.
*
*
* @param describeContainerInstancesRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the
* DescribeContainerInstances operation returned by the service.
* @sample AmazonECSAsyncHandler.DescribeContainerInstances
*/
java.util.concurrent.Future describeContainerInstancesAsync(
DescribeContainerInstancesRequest describeContainerInstancesRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Describes the specified services running in your cluster.
*
*
* @param describeServicesRequest
* @return A Java Future containing the result of the DescribeServices
* operation returned by the service.
* @sample AmazonECSAsync.DescribeServices
*/
java.util.concurrent.Future describeServicesAsync(
DescribeServicesRequest describeServicesRequest);
/**
*
* Describes the specified services running in your cluster.
*
*
* @param describeServicesRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the DescribeServices
* operation returned by the service.
* @sample AmazonECSAsyncHandler.DescribeServices
*/
java.util.concurrent.Future describeServicesAsync(
DescribeServicesRequest describeServicesRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Describes a task definition. You can specify a family
and
* revision
to find information about a specific task
* definition, or you can simply specify the family to find the latest
* ACTIVE
revision in that family.
*
*
*
* You can only describe INACTIVE
task definitions while an
* active task or service references them.
*
*
*
* @param describeTaskDefinitionRequest
* @return A Java Future containing the result of the DescribeTaskDefinition
* operation returned by the service.
* @sample AmazonECSAsync.DescribeTaskDefinition
*/
java.util.concurrent.Future describeTaskDefinitionAsync(
DescribeTaskDefinitionRequest describeTaskDefinitionRequest);
/**
*
* Describes a task definition. You can specify a family
and
* revision
to find information about a specific task
* definition, or you can simply specify the family to find the latest
* ACTIVE
revision in that family.
*
*
*
* You can only describe INACTIVE
task definitions while an
* active task or service references them.
*
*
*
* @param describeTaskDefinitionRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the DescribeTaskDefinition
* operation returned by the service.
* @sample AmazonECSAsyncHandler.DescribeTaskDefinition
*/
java.util.concurrent.Future describeTaskDefinitionAsync(
DescribeTaskDefinitionRequest describeTaskDefinitionRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Describes a specified task or tasks.
*
*
* @param describeTasksRequest
* @return A Java Future containing the result of the DescribeTasks
* operation returned by the service.
* @sample AmazonECSAsync.DescribeTasks
*/
java.util.concurrent.Future describeTasksAsync(
DescribeTasksRequest describeTasksRequest);
/**
*
* Describes a specified task or tasks.
*
*
* @param describeTasksRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the DescribeTasks
* operation returned by the service.
* @sample AmazonECSAsyncHandler.DescribeTasks
*/
java.util.concurrent.Future describeTasksAsync(
DescribeTasksRequest describeTasksRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Returns an endpoint for the Amazon EC2 Container Service agent to poll
* for updates.
*
*
* @param discoverPollEndpointRequest
* @return A Java Future containing the result of the DiscoverPollEndpoint
* operation returned by the service.
* @sample AmazonECSAsync.DiscoverPollEndpoint
*/
java.util.concurrent.Future discoverPollEndpointAsync(
DiscoverPollEndpointRequest discoverPollEndpointRequest);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Returns an endpoint for the Amazon EC2 Container Service agent to poll
* for updates.
*
*
* @param discoverPollEndpointRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the DiscoverPollEndpoint
* operation returned by the service.
* @sample AmazonECSAsyncHandler.DiscoverPollEndpoint
*/
java.util.concurrent.Future discoverPollEndpointAsync(
DiscoverPollEndpointRequest discoverPollEndpointRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the DiscoverPollEndpoint operation.
*
* @see #discoverPollEndpointAsync(DiscoverPollEndpointRequest)
*/
java.util.concurrent.Future discoverPollEndpointAsync();
/**
* Simplified method form for invoking the DiscoverPollEndpoint operation
* with an AsyncHandler.
*
* @see #discoverPollEndpointAsync(DiscoverPollEndpointRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future discoverPollEndpointAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Returns a list of existing clusters.
*
*
* @param listClustersRequest
* @return A Java Future containing the result of the ListClusters operation
* returned by the service.
* @sample AmazonECSAsync.ListClusters
*/
java.util.concurrent.Future listClustersAsync(
ListClustersRequest listClustersRequest);
/**
*
* Returns a list of existing clusters.
*
*
* @param listClustersRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the ListClusters operation
* returned by the service.
* @sample AmazonECSAsyncHandler.ListClusters
*/
java.util.concurrent.Future listClustersAsync(
ListClustersRequest listClustersRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the ListClusters operation.
*
* @see #listClustersAsync(ListClustersRequest)
*/
java.util.concurrent.Future listClustersAsync();
/**
* Simplified method form for invoking the ListClusters operation with an
* AsyncHandler.
*
* @see #listClustersAsync(ListClustersRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future listClustersAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Returns a list of container instances in a specified cluster.
*
*
* @param listContainerInstancesRequest
* @return A Java Future containing the result of the ListContainerInstances
* operation returned by the service.
* @sample AmazonECSAsync.ListContainerInstances
*/
java.util.concurrent.Future listContainerInstancesAsync(
ListContainerInstancesRequest listContainerInstancesRequest);
/**
*
* Returns a list of container instances in a specified cluster.
*
*
* @param listContainerInstancesRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the ListContainerInstances
* operation returned by the service.
* @sample AmazonECSAsyncHandler.ListContainerInstances
*/
java.util.concurrent.Future listContainerInstancesAsync(
ListContainerInstancesRequest listContainerInstancesRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the ListContainerInstances operation.
*
* @see #listContainerInstancesAsync(ListContainerInstancesRequest)
*/
java.util.concurrent.Future listContainerInstancesAsync();
/**
* Simplified method form for invoking the ListContainerInstances operation
* with an AsyncHandler.
*
* @see #listContainerInstancesAsync(ListContainerInstancesRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future listContainerInstancesAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Lists the services that are running in a specified cluster.
*
*
* @param listServicesRequest
* @return A Java Future containing the result of the ListServices operation
* returned by the service.
* @sample AmazonECSAsync.ListServices
*/
java.util.concurrent.Future listServicesAsync(
ListServicesRequest listServicesRequest);
/**
*
* Lists the services that are running in a specified cluster.
*
*
* @param listServicesRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the ListServices operation
* returned by the service.
* @sample AmazonECSAsyncHandler.ListServices
*/
java.util.concurrent.Future listServicesAsync(
ListServicesRequest listServicesRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the ListServices operation.
*
* @see #listServicesAsync(ListServicesRequest)
*/
java.util.concurrent.Future listServicesAsync();
/**
* Simplified method form for invoking the ListServices operation with an
* AsyncHandler.
*
* @see #listServicesAsync(ListServicesRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future listServicesAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Returns a list of task definition families that are registered to your
* account (which may include task definition families that no longer have
* any ACTIVE
task definitions). You can filter the results
* with the familyPrefix
parameter.
*
*
* @param listTaskDefinitionFamiliesRequest
* @return A Java Future containing the result of the
* ListTaskDefinitionFamilies operation returned by the service.
* @sample AmazonECSAsync.ListTaskDefinitionFamilies
*/
java.util.concurrent.Future listTaskDefinitionFamiliesAsync(
ListTaskDefinitionFamiliesRequest listTaskDefinitionFamiliesRequest);
/**
*
* Returns a list of task definition families that are registered to your
* account (which may include task definition families that no longer have
* any ACTIVE
task definitions). You can filter the results
* with the familyPrefix
parameter.
*
*
* @param listTaskDefinitionFamiliesRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the
* ListTaskDefinitionFamilies operation returned by the service.
* @sample AmazonECSAsyncHandler.ListTaskDefinitionFamilies
*/
java.util.concurrent.Future listTaskDefinitionFamiliesAsync(
ListTaskDefinitionFamiliesRequest listTaskDefinitionFamiliesRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the ListTaskDefinitionFamilies
* operation.
*
* @see #listTaskDefinitionFamiliesAsync(ListTaskDefinitionFamiliesRequest)
*/
java.util.concurrent.Future listTaskDefinitionFamiliesAsync();
/**
* Simplified method form for invoking the ListTaskDefinitionFamilies
* operation with an AsyncHandler.
*
* @see #listTaskDefinitionFamiliesAsync(ListTaskDefinitionFamiliesRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future listTaskDefinitionFamiliesAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Returns a list of task definitions that are registered to your account.
* You can filter the results by family name with the
* familyPrefix
parameter or by status with the
* status
parameter.
*
*
* @param listTaskDefinitionsRequest
* @return A Java Future containing the result of the ListTaskDefinitions
* operation returned by the service.
* @sample AmazonECSAsync.ListTaskDefinitions
*/
java.util.concurrent.Future listTaskDefinitionsAsync(
ListTaskDefinitionsRequest listTaskDefinitionsRequest);
/**
*
* Returns a list of task definitions that are registered to your account.
* You can filter the results by family name with the
* familyPrefix
parameter or by status with the
* status
parameter.
*
*
* @param listTaskDefinitionsRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the ListTaskDefinitions
* operation returned by the service.
* @sample AmazonECSAsyncHandler.ListTaskDefinitions
*/
java.util.concurrent.Future listTaskDefinitionsAsync(
ListTaskDefinitionsRequest listTaskDefinitionsRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the ListTaskDefinitions operation.
*
* @see #listTaskDefinitionsAsync(ListTaskDefinitionsRequest)
*/
java.util.concurrent.Future listTaskDefinitionsAsync();
/**
* Simplified method form for invoking the ListTaskDefinitions operation
* with an AsyncHandler.
*
* @see #listTaskDefinitionsAsync(ListTaskDefinitionsRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future listTaskDefinitionsAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Returns a list of tasks for a specified cluster. You can filter the
* results by family name, by a particular container instance, or by the
* desired status of the task with the family
,
* containerInstance
, and desiredStatus
* parameters.
*
*
* @param listTasksRequest
* @return A Java Future containing the result of the ListTasks operation
* returned by the service.
* @sample AmazonECSAsync.ListTasks
*/
java.util.concurrent.Future listTasksAsync(
ListTasksRequest listTasksRequest);
/**
*
* Returns a list of tasks for a specified cluster. You can filter the
* results by family name, by a particular container instance, or by the
* desired status of the task with the family
,
* containerInstance
, and desiredStatus
* parameters.
*
*
* @param listTasksRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the ListTasks operation
* returned by the service.
* @sample AmazonECSAsyncHandler.ListTasks
*/
java.util.concurrent.Future listTasksAsync(
ListTasksRequest listTasksRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the ListTasks operation.
*
* @see #listTasksAsync(ListTasksRequest)
*/
java.util.concurrent.Future listTasksAsync();
/**
* Simplified method form for invoking the ListTasks operation with an
* AsyncHandler.
*
* @see #listTasksAsync(ListTasksRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future listTasksAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Registers an EC2 instance into the specified cluster. This instance
* becomes available to place containers on.
*
*
* @param registerContainerInstanceRequest
* @return A Java Future containing the result of the
* RegisterContainerInstance operation returned by the service.
* @sample AmazonECSAsync.RegisterContainerInstance
*/
java.util.concurrent.Future registerContainerInstanceAsync(
RegisterContainerInstanceRequest registerContainerInstanceRequest);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Registers an EC2 instance into the specified cluster. This instance
* becomes available to place containers on.
*
*
* @param registerContainerInstanceRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the
* RegisterContainerInstance operation returned by the service.
* @sample AmazonECSAsyncHandler.RegisterContainerInstance
*/
java.util.concurrent.Future registerContainerInstanceAsync(
RegisterContainerInstanceRequest registerContainerInstanceRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Registers a new task definition from the supplied family
and
* containerDefinitions
. Optionally, you can add data volumes
* to your containers with the volumes
parameter. For more
* information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service
* Developer Guide.
*
*
* @param registerTaskDefinitionRequest
* @return A Java Future containing the result of the RegisterTaskDefinition
* operation returned by the service.
* @sample AmazonECSAsync.RegisterTaskDefinition
*/
java.util.concurrent.Future registerTaskDefinitionAsync(
RegisterTaskDefinitionRequest registerTaskDefinitionRequest);
/**
*
* Registers a new task definition from the supplied family
and
* containerDefinitions
. Optionally, you can add data volumes
* to your containers with the volumes
parameter. For more
* information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service
* Developer Guide.
*
*
* @param registerTaskDefinitionRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the RegisterTaskDefinition
* operation returned by the service.
* @sample AmazonECSAsyncHandler.RegisterTaskDefinition
*/
java.util.concurrent.Future registerTaskDefinitionAsync(
RegisterTaskDefinitionRequest registerTaskDefinitionRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Start a task using random placement and the default Amazon ECS scheduler.
* To use your own scheduler or place a task on a specific container
* instance, use StartTask
instead.
*
*
*
* The count
parameter is limited to 10 tasks per call.
*
*
*
* @param runTaskRequest
* @return A Java Future containing the result of the RunTask operation
* returned by the service.
* @sample AmazonECSAsync.RunTask
*/
java.util.concurrent.Future runTaskAsync(
RunTaskRequest runTaskRequest);
/**
*
* Start a task using random placement and the default Amazon ECS scheduler.
* To use your own scheduler or place a task on a specific container
* instance, use StartTask
instead.
*
*
*
* The count
parameter is limited to 10 tasks per call.
*
*
*
* @param runTaskRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the RunTask operation
* returned by the service.
* @sample AmazonECSAsyncHandler.RunTask
*/
java.util.concurrent.Future runTaskAsync(
RunTaskRequest runTaskRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Starts a new task from the specified task definition on the specified
* container instance or instances. To use the default Amazon ECS scheduler
* to place your task, use RunTask
instead.
*
*
*
* The list of container instances to start tasks on is limited to 10.
*
*
*
* @param startTaskRequest
* @return A Java Future containing the result of the StartTask operation
* returned by the service.
* @sample AmazonECSAsync.StartTask
*/
java.util.concurrent.Future startTaskAsync(
StartTaskRequest startTaskRequest);
/**
*
* Starts a new task from the specified task definition on the specified
* container instance or instances. To use the default Amazon ECS scheduler
* to place your task, use RunTask
instead.
*
*
*
* The list of container instances to start tasks on is limited to 10.
*
*
*
* @param startTaskRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the StartTask operation
* returned by the service.
* @sample AmazonECSAsyncHandler.StartTask
*/
java.util.concurrent.Future startTaskAsync(
StartTaskRequest startTaskRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Stops a running task.
*
*
* When StopTask is called on a task, 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.
*
*
* @param stopTaskRequest
* @return A Java Future containing the result of the StopTask operation
* returned by the service.
* @sample AmazonECSAsync.StopTask
*/
java.util.concurrent.Future stopTaskAsync(
StopTaskRequest stopTaskRequest);
/**
*
* Stops a running task.
*
*
* When StopTask is called on a task, 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.
*
*
* @param stopTaskRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the StopTask operation
* returned by the service.
* @sample AmazonECSAsyncHandler.StopTask
*/
java.util.concurrent.Future stopTaskAsync(
StopTaskRequest stopTaskRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Sent to acknowledge that a container changed states.
*
*
* @param submitContainerStateChangeRequest
* @return A Java Future containing the result of the
* SubmitContainerStateChange operation returned by the service.
* @sample AmazonECSAsync.SubmitContainerStateChange
*/
java.util.concurrent.Future submitContainerStateChangeAsync(
SubmitContainerStateChangeRequest submitContainerStateChangeRequest);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Sent to acknowledge that a container changed states.
*
*
* @param submitContainerStateChangeRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the
* SubmitContainerStateChange operation returned by the service.
* @sample AmazonECSAsyncHandler.SubmitContainerStateChange
*/
java.util.concurrent.Future submitContainerStateChangeAsync(
SubmitContainerStateChangeRequest submitContainerStateChangeRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
* Simplified method form for invoking the SubmitContainerStateChange
* operation.
*
* @see #submitContainerStateChangeAsync(SubmitContainerStateChangeRequest)
*/
java.util.concurrent.Future submitContainerStateChangeAsync();
/**
* Simplified method form for invoking the SubmitContainerStateChange
* operation with an AsyncHandler.
*
* @see #submitContainerStateChangeAsync(SubmitContainerStateChangeRequest,
* com.amazonaws.handlers.AsyncHandler)
*/
java.util.concurrent.Future submitContainerStateChangeAsync(
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Sent to acknowledge that a task changed states.
*
*
* @param submitTaskStateChangeRequest
* @return A Java Future containing the result of the SubmitTaskStateChange
* operation returned by the service.
* @sample AmazonECSAsync.SubmitTaskStateChange
*/
java.util.concurrent.Future submitTaskStateChangeAsync(
SubmitTaskStateChangeRequest submitTaskStateChangeRequest);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Sent to acknowledge that a task changed states.
*
*
* @param submitTaskStateChangeRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the SubmitTaskStateChange
* operation returned by the service.
* @sample AmazonECSAsyncHandler.SubmitTaskStateChange
*/
java.util.concurrent.Future submitTaskStateChangeAsync(
SubmitTaskStateChangeRequest submitTaskStateChangeRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Updates the Amazon ECS container agent on a specified container instance.
* Updating the Amazon ECS container agent does not interrupt running tasks
* or services on the container instance. The process for updating the agent
* differs depending on whether your container instance was launched with
* the Amazon ECS-optimized AMI or another operating system.
*
*
* UpdateContainerAgent
requires the Amazon ECS-optimized AMI
* or Amazon Linux with the ecs-init
service installed and
* running. For help updating the Amazon ECS container agent on other
* operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon
* EC2 Container Service Developer Guide.
*
*
* @param updateContainerAgentRequest
* @return A Java Future containing the result of the UpdateContainerAgent
* operation returned by the service.
* @sample AmazonECSAsync.UpdateContainerAgent
*/
java.util.concurrent.Future updateContainerAgentAsync(
UpdateContainerAgentRequest updateContainerAgentRequest);
/**
*
* Updates the Amazon ECS container agent on a specified container instance.
* Updating the Amazon ECS container agent does not interrupt running tasks
* or services on the container instance. The process for updating the agent
* differs depending on whether your container instance was launched with
* the Amazon ECS-optimized AMI or another operating system.
*
*
* UpdateContainerAgent
requires the Amazon ECS-optimized AMI
* or Amazon Linux with the ecs-init
service installed and
* running. For help updating the Amazon ECS container agent on other
* operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon
* EC2 Container Service Developer Guide.
*
*
* @param updateContainerAgentRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the UpdateContainerAgent
* operation returned by the service.
* @sample AmazonECSAsyncHandler.UpdateContainerAgent
*/
java.util.concurrent.Future updateContainerAgentAsync(
UpdateContainerAgentRequest updateContainerAgentRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
/**
*
* Modifies the desired count, deployment configuration, 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.
*
*
* You can also update the deployment configuration of a service. When a
* deployment is triggered by updating the task definition of a service, the
* service scheduler uses the deployment configuration parameters,
* minimumHealthyPercent
and maximumPercent
, to
* determine the deployment strategy.
*
*
* If the minimumHealthyPercent
is below 100%, the scheduler
* can ignore the desiredCount
temporarily during a deployment.
* For example, if your service has a desiredCount
of four
* tasks, a minimumHealthyPercent
of 50% allows the scheduler
* to stop two existing tasks before starting two new tasks. Tasks for
* services that do not use a load balancer are considered healthy if
* they are in the RUNNING
state; tasks for services that
* do use a load balancer are considered healthy if they are in the
* RUNNING
state and the container instance it is hosted on is
* reported as healthy by the load balancer.
*
*
* The maximumPercent
parameter represents an upper limit on
* the number of running tasks during a deployment, which enables you to
* define the deployment batch size. For example, if your service has a
* desiredCount
of four tasks, a maximumPercent
* value of 200% starts four new tasks before stopping the four older tasks
* (provided that the cluster resources required to do this are available).
*
*
* When UpdateService stops a task during a deployment, 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.
*
*
*
*
* @param updateServiceRequest
* @return A Java Future containing the result of the UpdateService
* operation returned by the service.
* @sample AmazonECSAsync.UpdateService
*/
java.util.concurrent.Future updateServiceAsync(
UpdateServiceRequest updateServiceRequest);
/**
*
* Modifies the desired count, deployment configuration, 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.
*
*
* You can also update the deployment configuration of a service. When a
* deployment is triggered by updating the task definition of a service, the
* service scheduler uses the deployment configuration parameters,
* minimumHealthyPercent
and maximumPercent
, to
* determine the deployment strategy.
*
*
* If the minimumHealthyPercent
is below 100%, the scheduler
* can ignore the desiredCount
temporarily during a deployment.
* For example, if your service has a desiredCount
of four
* tasks, a minimumHealthyPercent
of 50% allows the scheduler
* to stop two existing tasks before starting two new tasks. Tasks for
* services that do not use a load balancer are considered healthy if
* they are in the RUNNING
state; tasks for services that
* do use a load balancer are considered healthy if they are in the
* RUNNING
state and the container instance it is hosted on is
* reported as healthy by the load balancer.
*
*
* The maximumPercent
parameter represents an upper limit on
* the number of running tasks during a deployment, which enables you to
* define the deployment batch size. For example, if your service has a
* desiredCount
of four tasks, a maximumPercent
* value of 200% starts four new tasks before stopping the four older tasks
* (provided that the cluster resources required to do this are available).
*
*
* When UpdateService stops a task during a deployment, 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.
*
*
*
*
* @param updateServiceRequest
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the
* request. Users can provide an implementation of the callback
* methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the UpdateService
* operation returned by the service.
* @sample AmazonECSAsyncHandler.UpdateService
*/
java.util.concurrent.Future updateServiceAsync(
UpdateServiceRequest updateServiceRequest,
com.amazonaws.handlers.AsyncHandler asyncHandler);
}