

# 使用 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`。

# Amazon ECS 服务部署中包含的属性
<a name="service-deployment-property"></a>

服务部署中包含以下属性。


| 属性 | 说明 | 
| --- | --- | 
|  服务部署 ARN  |  服务部署的 ARN。  | 
| 服务 ARN |  此服务部署的服务 ARN。  | 
|  集群 ARN  |  托管服务的集群的 ARN。  | 
| 服务部署创建时间 | 创建服务部署的时间。 | 
| 服务部署启动时间 | 启动服务部署的时间。 | 
|  服务部署完成时间  | 完成服务部署的时间。 | 
| 服务部署停止时间 | 停止服务部署的时间。 | 
| 服务部署更新时间 | 上次更新服务部署的时间。 | 
| 源服务修订 |  当前正在运行的服务修订。 有关所包含属性的信息，请参阅[Amazon ECS 服务修订中包含的属性](service-revision-property.md)。  | 
| 部署配置 | 部署参数包括断路器配置、确定的警报。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/service-deployment-property.html) | 
| 目标服务修订 | 要部署的服务修订。部署成功完成后，目标服务修订变为正在运行的服务修订。 | 
| 服务部署状态 | 服务部署状态。有效值为 PENDING、SUCCESSFUL、STOPPED、STOP\$1REQUESTED、STOP\$1IN\$1PROGRESS、IN\$1PROGRESS、ROLLBACK\$1IN\$1PROGRESS、ROLLBACK\$1SUCCESSFUL、和 ROLLBACK\$1FAILED。 | 
| 服务部署状态信息 | 有关服务部署为何处于当前状态的信息。例如，断路器检测到故障。 | 
|  回滚信息 | 部署失败时服务部署使用的回滚选项。 | 
| 服务部署断路器选项 | 决定服务部署失败的断路器。 | 
| 服务部署的 CloudWatch 警报 | 用于确定服务部署何时失败的 CloudWatch 警报。 | 

# 查看 Amazon ECS 服务部署所需的权限
<a name="service-deployment-permissions"></a>

 当您遵循授予最低权限的最佳实践时，需要添加额外的权限，才能在控制台中查看服务部署。

您需要执行以下操作的权限：
+ ListServiceDeployments
+ DescribeServiceDeployments
+ DescribeServiceRevisions

您需要访问以下资源的权限：
+ 服务
+ 服务部署
+ 服务修订

以下示例策略包含所需的权限，并将操作限制到特定服务。

将 `account`、`cluster-name` 和 `service-name` 替换为您的值。

------
#### [ JSON ]

****  

```
{
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ecs:ListServiceDeployments",
            "ecs:DescribeServiceDeployments",
            "ecs:DescribeServiceRevisions"
        ],
        "Resource": [
            "arn:aws:ecs:us-east-1:123456789012:service/cluster-name/service-name",
            "arn:aws:ecs:us-east-1:123456789012:service-deployment/cluster-name/service-name/*",
            "arn:aws:ecs:us-east-1:123456789012:service-revision/cluster-name/service-name/*"
            ]
        }
   ]
}
```

------

# 查看 Amazon ECS 服务部署
<a name="view-service-deployment"></a>

您可以查看在 2024 年 10 月 25 日当天或之后创建的部署的最近 90 天历史记录。服务部署可能为下列任意状态：
+ 进行中 
+ 待处理
+ Completed

 您可以使用此信息来确定是否需要更新服务的部署方式或服务修订。有关所包含属性的信息，请参阅[Amazon ECS 服务部署中包含的属性](service-deployment-property.md)。

开始操作之前，请配置查看服务部署所需的权限。有关更多信息，请参阅 [查看 Amazon ECS 服务部署所需的权限](service-deployment-permissions.md)。

------
#### [ Amazon ECS Console ]

1. 在 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2) 打开控制台。

1. 在 **Clusters**（集群）页面上，选择集群。

1. 在“集群详细信息”页面，找到**服务**部分，然后选择服务。

   此时将显示服务详细信息页面。

1. 在服务详细信息页面上，选择**部署**。

1. 选择要查看的服务部署。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/view-service-deployment.html)

   此时将显示服务部署详细信息页面。

1. （可选）比较服务修订以查看差异。

   在**服务修订**下，选择**比较版本**，然后选择 2 个版本进行比较。

   服务修订将并行显示，并突出显示差异。

------
#### [ AWS CLI ]

1. 运行 `list-service-deployments` 以检索服务部署 ARN。

   将变量替换为您自己的值。

   ```
   aws ecs list-service-deployments --cluster cluster-name --service service-name
   ```

   记下要查看的部署的 serviceDeploymentArn。

   ```
   {
       "serviceDeployments": [
           {
               "serviceDeploymentArn": "arn:aws:ecs:us-west-2:123456789012:service-deployment/example/sd-example/NCWGC2ZR-taawPAYrIaU5",
               "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/example/sd-example",
               "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/example",
               "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:123456789012:service-revision/example/sd-example/4980306466373577095",
               "status": "SUCCESSFUL"
           }
       ]
   }
   ```

1. 运行 `describe-service-deployments`。使用从 `serviceDeploymentArn` 中返回的 `list-service-deployments`。

   将变量替换为您自己的值。

   ```
   aws ecs describe-service-deployments --service-deployment-arns arn:aws:ecs:region:123456789012:service-deployment/cluster-name/service-name/NCWGC2ZR-taawPAYrIaU5
   ```

------

## 后续步骤
<a name="view-service-deployment-next-step"></a>

您可以查看部署中服务修订的详细信息。有关更多信息，请参阅 [查看 Amazon ECS 服务修订详细信息](view-service-revision.md)。