AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.
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.
For .NET Core this operation is only available in asynchronous form. Please refer to UpdateTaskProtectionAsync.
Namespace: Amazon.ECS
Assembly: AWSSDK.ECS.dll
Version: 3.x.y.z
public virtual UpdateTaskProtectionResponse UpdateTaskProtection( UpdateTaskProtectionRequest request )
Container for the necessary parameters to execute the UpdateTaskProtection service method.
| Exception | Condition |
|---|---|
| AccessDeniedException | You don't have authorization to perform the requested action. |
| ClientException | These errors are usually caused by a client action. This client action might be using an action or resource on behalf of a user that doesn't have permissions to use the action or resource. Or, it might be specifying an identifier that isn't valid. |
| ClusterNotFoundException | The specified cluster wasn't found. You can view your available clusters with ListClusters. Amazon ECS clusters are Region specific. |
| InvalidParameterException | The specified parameter isn't valid. Review the available parameters for the API request. For more information about service event errors, see Amazon ECS service event messages. |
| ResourceNotFoundException | The specified resource wasn't found. |
| ServerException | These errors are usually caused by a server issue. |
| UnsupportedFeatureException | The specified task isn't supported in this Region. |
This example enables scale-in protection for a task for 60 minutes.
var client = new AmazonECSClient();
var response = client.UpdateTaskProtection(new UpdateTaskProtectionRequest
{
Cluster = "test-task-protection",
ExpiresInMinutes = 60,
ProtectionEnabled = true,
Tasks = new List<string> {
"b8b1cf532d0e46ba8d44a40d1de16772"
}
});
List<Failure> failures = response.Failures;
List<ProtectedTask> protectedTasks = response.ProtectedTasks;
This example enables task scale-in protection for a task, without specifying the expiresInMinutes parameter, for the default protection period of 120 minutes.
var client = new AmazonECSClient();
var response = client.UpdateTaskProtection(new UpdateTaskProtectionRequest
{
Cluster = "test-task-protection",
ProtectionEnabled = true,
Tasks = new List<string> {
"b8b1cf532d0e46ba8d44a40d1de16772"
}
});
List<Failure> failures = response.Failures;
List<ProtectedTask> protectedTasks = response.ProtectedTasks;
This example removes scale-in protection for a task.
var client = new AmazonECSClient();
var response = client.UpdateTaskProtection(new UpdateTaskProtectionRequest
{
Cluster = "test-task-protection",
ProtectionEnabled = false,
Tasks = new List<string> {
"b8b1cf532d0e46ba8d44a40d1de16772"
}
});
List<Failure> failures = response.Failures;
List<ProtectedTask> protectedTasks = response.ProtectedTasks;
.NET Framework:
Supported in: 4.5 and newer, 3.5