

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

# 更新 Amazon ECS Express Mode 服務
<a name="express-service-update-full"></a>

快速模式服務透過提供聯網、負載平衡和 Application Auto Scaling 的可設定選項，以及協調這些服務的變更，來簡化服務更新程序。

您可以更新快速模式服務來修改容器映像、調整資源配置或變更組態設定。使用 Canary 部署搭配警示型復原警示來部署更新，以維持可用性。

## 部署行為
<a name="express-service-update-full-behavior"></a>

根據預設，快速模式服務會使用 Canary 部署，以確保安全更新和快速復原：
+ 建立新的環境，並隨您的變更部署任務
+ 5% 的流量會轉移到新環境
+ 如果 3 分鐘內 2 個資料點的 4xx 和 5xx 錯誤百分比總和 > 1，則會觸發警示型轉返
+ 運作狀態檢查會驗證新任務是否正常運作
+ 3 分鐘後，100% 的流量會轉移到新環境
+ 經過 3 分鐘的製作時間進行監控後，舊任務會逐漸停止並取代

如需詳細資訊，請參閱 [Amazon ECS Canary 部署](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/canary-deployment.html)

## 程序
<a name="express-service-update-full-procedure"></a>

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 在導覽窗格中，選擇**叢集**。

1. 在**叢集**頁面上，選擇包含快速模式服務的叢集名稱。

1. 在叢集詳細資訊頁面上，選擇**服務**索引標籤。

1. 設定篩選條件以檢視您的快速模式服務。針對**篩選資源管理類型**，選擇 **ECS**。

   快速模式服務的名稱旁有一個**快速**徽章。

1. 在**組態**下：

   1. 指定要用於應用程式的映像。針對**映像 URI**，輸入映像的 URI。若要瀏覽 Amazon ECR 映像，請選擇**瀏覽 ECR 映像**，然後執行下列動作：

      1. 針對**私有儲存庫**，選擇 Amazon ECR 私有儲存庫。

      1. 針對**映像**，選擇您的映像。

      1. 選擇如何識別映像。針對**選取影像依據**，選擇下列其中一個選項：
         + AWS 建議您選擇**映像摘要**。
         + 若要使用標籤，請選擇**映像標籤**，然後選擇標籤。

   1. 若要使用私有登錄檔，請選取**私有登錄檔**。然後，針對 **Secrets Manager ARN 或名稱**，輸入您在先決條件中建立的 Secrets Manager ARN。

   1. 針對**任務執行角色**，選擇角色或建立新的角色並重新整理。當您需要新增其他許可時，可以更新任務執行角色。

1. **在其他組態**下，自訂您的服務。

   1. 在**容器**下：

      1. 針對**容器連接埠**，更新應用程式接聽的連接埠 （預設為 80)。

      1. 對於**運作狀態檢查路徑**，請更新運作狀態檢查的路徑 （例如 `/health`)。

   1. 在**環境變數**下，為您的應用程式需要的環境變數新增索引鍵/值對：

      1. 針對**金鑰**，輸入環境變數名稱。

      1. 針對**值類型**，選擇**環境變數**或**秘密**。

      1. 針對**值或值來源**，輸入值或參考。

      1. 選擇**新增環境變數**，視需要新增更多變數。

   1. 在 **Command** 中，選擇性地輸入自訂命令來覆寫 Docker CMD 指令。

   1. 針對**任務角色**，新增 IAM 角色，將許可授予在容器中執行的應用程式。這可讓您的應用程式對 AWS 服務進行 API 呼叫。

   1. 在**運算**下：

      1. 對於 **CPU**，請更新任務的 vCPU 配置 （例如 1 個 vCPU)。

      1. 針對**記憶體**，請更新任務的記憶體配置 （例如 2 GB)。

   1. 在 **Auto Scaling** 下：

      1. 對於 **ECS 服務指標**，選擇要擴展的指標 （例如，**ECS 服務平均記憶體使用率**或**每個目標的請求計數**)。

      1. 針對**目標值**，輸入擴展的目標 （例如 **60** 或 **1000**)。

      1. 針對**任務數量下限**和**任務數量上限**，更新擴展限制。

   1. 在**日誌**下：

      1. 對於 **Amazon CloudWatch 日誌群組**，請更新應用程式日誌的日誌群組名稱。請注意，這不會移動現有的日誌，而是開始從新的服務修訂版寫入日誌。

      1. 針對 **Amazon CloudWatch 日誌串流字**首，輸入日誌串流的新字首。

1. 選擇**更新**以更新您的快速模式服務。

### 使用自訂任務定義更新
<a name="express-service-update-custom-td"></a>

您可以指定 `taskDefinitionArn` 參數，以自訂任務定義更新您的快速模式服務。快速模式會依原狀使用您的任務定義，並繼續管理其餘的基礎設施。

在後續更新中，您可以：
+ 建立新的任務定義修訂，並更新 `taskDefinitionArn`。快速模式使用新修訂版進行下一個服務部署。
+ 直接更新快速模式參數：
  + 對於與任務定義無關的參數 （例如 `healthCheckPath`、 或 `scalingTarget`)`networkConfiguration`，快速模式會套用變更，而不修改任務定義。
  + 對於任務定義相關參數 （例如使用 或 `cpu`/ 的映像、CPU `primaryContainer`或記憶體`memory`)，快速模式會使用您的變更建立新的受管任務定義，同時保留其他任務層級組態。

**使用自訂任務定義更新 (Amazon ECS 主控台）**

1. 開啟 Amazon ECS 主控台並導覽至您的快速模式服務。

1. 選擇**更新服務**旁的下拉箭頭，然後選擇**使用自訂任務定義更新**。

1. 針對**任務定義系列**，選取現有的任務定義系列。若要建立新的任務定義，請選擇**任務定義**連結。

1. 對於**任務定義修訂**，選取要使用的修訂，或保留空白以使用最新的修訂。

1. （選用） 展開**其他組態**以更新運作狀態檢查路徑、聯網或自動擴展設定。

1. 選擇**更新**。

下列 AWS AWS CLI 命令會使用自訂任務定義更新您的快速模式服務：

```
aws ecs update-express-gateway-service \
    --service-arn arn:aws:ecs:us-west-2:123456789012:service/default/my-service \
    --task-definition-arn arn:aws:ecs:us-west-2:123456789012:task-definition/my-td:4
```

**注意**  
如果您是第一次使用 CloudFormation 和 `taskDefinitionArn`新增至快速模式服務，請先重新部署堆疊一次。這可確保復原相容性。