

# 使用 Amazon ECS 服务部署查看服务历史记录
<a name="service-deployment"></a>

服务部署可让您全面了解部署。服务部署可提供有关服务的以下信息：
+ 当前部署的工作负载配置（源服务修订版本）
+ 要部署的工作负载配置（目标服务修订）
+ 部署状态
+ 断路器检测到的失败的任务数
+ 处于警报状态的 CloudWatch 警报
+ 服务部署何时启动和完成
+ 回滚（如果发生）的详细信息

有关服务部署属性的信息，请参阅[Amazon ECS 服务部署中包含的属性](service-deployment-property.md)。

服务部署是只读的，每个部署都有唯一的 ID。

服务部署分为三个阶段：


| 舞台 | 定义 | 关联状态 | 
| --- | --- | --- | 
| 待处理 | 服务部署已创建，但尚未启动 | PENDING | 
| 持续 | 正在进行服务部署 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/service-deployment.html)  | 
| Completed  | 服务部署已完成（成功或失败） |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/service-deployment.html)  | 

可以使用服务部署来了解服务的生命周期，并确定是否需要采取任何行动。例如，如果发生回滚，则可能需要调查服务部署并查看服务事件。

您可以使用控制台、API 和 AWS CLI，查看在 2024 年 10 月 25 日当天或之后创建的部署的最近 90 天历史记录。

您可以停止尚未完成的部署。有关更多信息，请参阅 [停止 Amazon ECS 服务部署](stop-service-deployment.md)。

## 服务部署生命周期
<a name="service-deployments-lifecycle"></a>

发生以下任何操作时，Amazon ECS 会自动创建新的服务部署：
+ 用户创建服务。
+ 用户更新服务并使用强制新部署选项。
+ 用户更新一个或多个需要部署的服务属性。

在部署期间，Amazon ECS 会更新以下服务部署属性以反映服务部署的进度：
+ 状态
+ 正在运行的任务数量

  服务修订中指示的正在运行的任务数可能不等于实际正在运行的任务数。此数字表示部署完成时正在运行的任务数。例如，如果您独立于服务部署启动任务，则这些任务不会计入服务修订的正在运行的任务。
+ 断路器故障检测：
  + 启动失败的任务数
+ CloudWatch 警报故障检测
  + 处于活动状态的警报
+ 回滚信息：
  + 启动时间
  + 回滚的原因
  + 用于回滚的服务修订的 ARN
+ 状态原因

当您删除服务时，Amazon ECS 会删除相应服务部署。

## 服务部署状态
<a name="service-deployments-states"></a>

服务部署以 `PENDING` 状态启动。

下图显示了可能在 `PENDING` 状态之后发生的服务部署状态：`IN_PROGRESS`、`ROLLBACK_REQUESTED`、`SUCCESSFUL`、`STOP_REQUESTED`、`ROLLBACK_IN_PROGRESSS`、`ROLLBACK_FAILED`、`ROLLBACK_SUCCESSFUL` 和 `STOPPED`。

![\[服务部署的 STOP_REQUESTED、SUCCESSFUL 和 ROLLBACK_IN_PROGRESS 状态可能在 IN_PROGRESS 状态之后发生。\]](http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/images/service-deployment-states.png)


以下信息提供了有关服务部署状态的详细信息：
+ `PENDING`：服务部署已创建，但尚未启动。

  状态可以变为 `IN_PROGRESS`、`ROLLBACK_REQUESTED`、`STOP_REQUESTED` 或 `STOPPED`。
+ `IN_PROGRESS`：服务部署正在进行。

  状态可以变为 `SUCCESSFUL`、`STOP_REQUESTED`、`ROLLBACK_REQUESTED`、`ROLLBACK_IN_PROGRESS` 或 `STOPPED`。
+ `STOP_REQUESTED`：发生以下任一情况时，服务部署状态将变为 `STOP_REQUESTED`：
  + 用户启动新的服务部署。
  + 故障检测机制（基于断路器或警报）未使用回滚选项，并且服务未达到 `SUCCESSFUL` 状态。

  此状态将变为 `STOPPED`。
+  `ROLLBACK_REQUESTED`：当用户通过控制台、API 或 CLI 请求回滚时，服务部署状态将变为 `ROLLBACK_REQUESTED`。

  状态可以变为 `SUCCESSFUL`、`ROLLBACK_IN_PROGRESS` 和 `STOPPED`。
+ `SUCCESSFUL`：服务部署成功完成时，服务部署状态变为 `SUCCESSFUL`。
+  `ROLLBACK_IN_PROGRESS`：故障检测机制（基于断路器或警报）使用回滚选项，并且服务失败时，服务部署状态将变为 `ROLLBACK_IN_PROGRESS`。

   此状态将变为 `ROLLBACK_SUCCESSFUL` 或 `ROLLBACK_FAILED`。