update_task_protection

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
)
Parameters
  • cluster (string) --

    [REQUIRED]

    The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist in.

  • tasks (list) --

    [REQUIRED]

    A list of up to 10 task IDs or full ARN entries.

    • (string) --
  • protectionEnabled (boolean) --

    [REQUIRED]

    Specify true to mark a task for protection and false to unset protection, making it eligible for termination.

  • expiresInMinutes (integer) --

    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).

Return type

dict

Returns

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