

# Amazon ECS 任务定义状态
<a name="task-definition-state"></a>

当您创建、取消注册或删除任务定义时，其状态会发生变化。您可以在控制台中或使用 `DescribeTaskDefinition` 查看任务定义状态。

以下是任务定义可能的状态：

ACTIVE  
在向 Amazon ECS 注册之后，任务定义处于 `ACTIVE` 状态。您可以使用处于 `ACTIVE` 状态的任务定义来运行任务或创建服务。

非活跃  
当您取消注册任务定义时，任务定义会从 `ACTIVE` 状态转换为 `INACTIVE` 状态。您可以通过调用 `DescribeTaskDefinition` 来检索 `INACTIVE` 任务定义。您不能使用处于 `INACTIVE` 状态的任务定义来运行新任务或创建新服务。这对现有服务或任务没有影响。

DELETE\$1IN\$1PROGRESS  
在您提交要删除的任务定义后，任务定义会从 `INACTIVE` 状态转换为 `DELETE_IN_PROGRESS` 状态。任务定义处于 `DELETE_IN_PROGRESS` 状态后，Amazon ECS 会定期验证目标任务定义是否未被任何活动任务或部署引用，然后永久删除该任务定义。您不能使用处于 `DELETE_IN_PROGRESS` 状态的任务定义来运行新任务或创建新服务。您可以随时提交要删除的任务定义，而不会对现有任务和服务造成影响。  
您可以在控制台中查看处于 `DELETE_IN_PROGRESS` 状态的任务定义，也可以通过调用 `DescribeTaskDefinition` 来检索任务定义。  
删除所有 `INACTIVE` 任务定义修订版时，任务定义名称不会显示在控制台中，也不会在 API 中返回。如果任务定义修订版处于 `DELETE_IN_PROGRESS` 状态，任务定义名称会显示在控制台中，并且在 API 中返回。任务定义名称由 Amazon ECS 保留，并且在下次使用该名称创建任务定义时，修订版本会增加。

如果您使用 AWS Config 管理任务定义，AWS Config 会向您收取所有任务定义注册的费用。您只需为取消注册最新的 `ACTIVE` 任务定义付费。删除任务定义不收取任何费用。有关定价的更多信息，请参阅 [AWS Config 定价](https://aws.amazon.com/config/pricing/)。

## 可以阻止删除的 Amazon ECS 资源
<a name="resource-block-delete"></a>

当有任何依赖于任务定义修订的 Amazon ECS 资源时，将无法完成任务定义删除请求。以下资源可能会阻止任务定义被删除：
+ Amazon ECS 独立任务 – 需要任务定义才能使任务保持正常运行状态。
+ Amazon ECS 服务任务 – 需要任务定义才能使任务保持正常运行状态。
+ Amazon ECS 服务部署和任务集 – 在 Amazon ECS 部署或任务集启动扩展事件时，需要任务定义。

如果您的任务定义仍处于 `DELETE_IN_PROGRESS` 状态，则可以使用控制台或 AWS CLI 来识别，然后停止阻止删除任务定义的资源。

### 移除被阻止的资源后删除任务定义
<a name="resource-block-remove"></a>

在您移除阻止删除任务定义的资源后，将适用以下规则：
+ Amazon ECS 任务：任务停止后，删除任务定义最多可能需要 1 小时才能完成。
+ Amazon ECS 服务部署和任务集 – 删除部署或任务集后，任务定义的删除最长可能需要 24 小时才能完成。