

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon ECS 服務部署檢視服務歷史記錄
<a name="service-deployment"></a>

服務部署可用於全面檢視部署。服務部署提供下列服務相關資訊：
+ 目前部署的工作負載組態 (來源服務修訂版)
+ 正在部署的工作負載組態 (目標服務修訂版)
+ 部署狀態
+ 斷路器偵測到的失敗任務數量
+ 處於警示狀態的 CloudWatch 警示
+ 服務部署開始與完成的時間
+ 已發生之復原的詳細資訊

如需有關服務部署屬性的資訊，請參閱 [Amazon ECS 服務部署中包含的屬性](service-deployment-property.md)。

服務部署是唯讀的，每個都有唯一的 ID。

服務部署分為三個階段：


| 階段 | 定義 | 相關狀態 | 
| --- | --- | --- | 
| 待定 | 已建立服務部署，但尚未啟動 | 待定 | 
| 持續性 | 服務部署正在進行中 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonECS/latest/developerguide/service-deployment.html)  | 
| 已完成  | 服務部署已完成 (成功或失敗) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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`。

![\[在 IN_PROGRESS 狀態之後可能發生的服務部署狀態包括：STOP_REQUESTED、SUCCESSFUL 與 ROLLBACK_IN_PROGRESS。\]](http://docs.aws.amazon.com/zh_tw/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>

服務部署中包含下列屬性。


| 屬性 | Description | 
| --- | --- | 
|  服務部署 ARN  |  服務部署的 ARN。  | 
| 服務 ARN |  此服務部署所屬服務的 ARN。  | 
|  叢集 ARN  |  託管服務的叢集 ARN。  | 
| 服務部署建立時間 | 服務部署建立的時間。 | 
| 服務部署開始時間 | 服務部署開始的時間。 | 
|  服務部署完成時間  | 服務部署完成的時間。 | 
| 服務部署停止時間 | 服務部署停止的時間。 | 
| 服務部署更新時間 | 服務部署上次更新的時間。 | 
| 來源服務修訂版 |  目前執行中的服務修訂版。 如需有關包含的屬性的資訊，請參閱 [Amazon ECS 服務修訂版中包含的屬性](service-revision-property.md)。  | 
| Deployment configuration (部署組態) | 部署參數，包括斷路器組態、用於判斷的警示。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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 天歷史記錄。服務部署可以處於下列任何狀態：
+ 進行中 
+ 待定
+ 已完成

 您可以使用此資訊來判斷是否需要更新服務的部署方式或服務修訂版。如需有關包含的屬性的資訊，請參閱 [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. 在**叢集**頁面上，選擇叢集。

1. 在「叢集詳細資訊」頁面上的**服務**區段中，選擇所需服務。

   服務詳細資訊頁面隨即顯示。

1. 在服務詳細資訊頁面上，選擇**部署**。

1. 選擇要檢視的服務部署。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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`。使用從 `list-service-deployments` 傳回的 `serviceDeploymentArn`。

   將變數取代為您的值。

   ```
   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)