updateTaskProtection

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

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.

If you prefer to set task protection from within the container, we recommend using the Task scale-in protection endpoint.

Samples


fun main() { 
   //sampleStart 
   // This example removes scale in protection for a task.
val resp = ecsClient.updateTaskProtection {
    cluster = "test-task-protection"
    tasks = listOf<String>(
        "b8b1cf532d0e46ba8d44a40d1de16772"
    )
    protectionEnabled = false
} 
   //sampleEnd
}

fun main() { 
   //sampleStart 
   // This example enables scale in protection for a task for 60 minutes.
val resp = ecsClient.updateTaskProtection {
    cluster = "test-task-protection"
    tasks = listOf<String>(
        "b8b1cf532d0e46ba8d44a40d1de16772"
    )
    protectionEnabled = true
    expiresInMinutes = 60
} 
   //sampleEnd
}

fun main() { 
   //sampleStart 
   // This example enables task scale in protection for a task, without specifying the expiresInMinutes
// parameter, for the default protection period of 120 minutes.
val resp = ecsClient.updateTaskProtection {
    cluster = "test-task-protection"
    tasks = listOf<String>(
        "b8b1cf532d0e46ba8d44a40d1de16772"
    )
    protectionEnabled = true
} 
   //sampleEnd
}