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
}