update_task_protection
(**kwargs)¶Updates the protection status of a task. You can set protectionEnabled
to true
to protect your task from termination during scale-in events from Service Autoscaling or deployments.
Task-protection, by default, expires after 2 hours at which point Amazon ECS unsets the protectionEnabled
property making the task eligible for termination by a subsequent scale-in event.
You can specify a custom expiration period for task protection from 1 minute to up to 2,880 minutes (48 hours). To specify the custom expiration period, set the expiresInMinutes
property. The expiresInMinutes
property is always reset when you invoke this operation for a task that already has protectionEnabled
set to true
. You can keep extending the protection expiration period of a task by invoking this operation repeatedly.
To learn more about Amazon ECS task protection, see Task scale-in protection in the Amazon Elastic Container Service Developer Guide .
Note
This operation is only supported for tasks belonging to an Amazon ECS service. Invoking this operation for a standalone task will result in an TASK_NOT_VALID
failure. For more information, see API failure reasons.
Warning
If you prefer to set task protection from within the container, we recommend using the Task scale-in protection endpoint.
See also: AWS API Documentation
Request Syntax
response = client.update_task_protection(
cluster='string',
tasks=[
'string',
],
protectionEnabled=True|False,
expiresInMinutes=123
)
[REQUIRED]
The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist in.
[REQUIRED]
A list of up to 10 task IDs or full ARN entries.
[REQUIRED]
Specify true
to mark a task for protection and false
to unset protection, making it eligible for termination.
If you set protectionEnabled
to true
, you can specify the duration for task protection in minutes. You can specify a value from 1 minute to up to 2,880 minutes (48 hours). During this time, your task will not be terminated by scale-in events from Service Auto Scaling or deployments. After this time period lapses, protectionEnabled
will be reset to false
.
If you don’t specify the time, then the task is automatically protected for 120 minutes (2 hours).
dict
Response Syntax
{
'protectedTasks': [
{
'taskArn': 'string',
'protectionEnabled': True|False,
'expirationDate': datetime(2015, 1, 1)
},
],
'failures': [
{
'arn': 'string',
'reason': 'string',
'detail': 'string'
},
]
}
Response Structure
(dict) --
protectedTasks (list) --
A list of tasks with the following information.
taskArn
: The task ARN.protectionEnabled
: The protection status of the task. If scale-in protection is enabled for a task, the value is true
. Otherwise, it is false
.expirationDate
: The epoch time when protection for the task will expire.(dict) --
An object representing the protection status details for a task. You can set the protection status with the UpdateTaskProtection API and get the status of tasks with the GetTaskProtection API.
taskArn (string) --
The task ARN.
protectionEnabled (boolean) --
The protection status of the task. If scale-in protection is on for a task, the value is true
. Otherwise, it is false
.
expirationDate (datetime) --
The epoch time when protection for the task will expire.
failures (list) --
Any failures associated with the call.
(dict) --
A failed resource. For a list of common causes, see API failure reasons in the Amazon Elastic Container Service Developer Guide .
arn (string) --
The Amazon Resource Name (ARN) of the failed resource.
reason (string) --
The reason for the failure.
detail (string) --
The details of the failure.
Exceptions
ECS.Client.exceptions.AccessDeniedException
ECS.Client.exceptions.ClientException
ECS.Client.exceptions.ClusterNotFoundException
ECS.Client.exceptions.InvalidParameterException
ECS.Client.exceptions.ResourceNotFoundException
ECS.Client.exceptions.ServerException
ECS.Client.exceptions.UnsupportedFeatureException