本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 CodeDeploy 藍/綠部署遷移至 Amazon ECS 藍/綠服務部署
透過使用 Amazon ECS 藍/綠部署,您可以進行服務變更並加以測試,然後在生產環境中實作這些變更。
必須為 Amazon ECS 藍/綠部署建立新的 lifecycle hook。
先決條件
開始藍/綠部署之前,請執行下列動作。
-
將 Amazon ECS CodeDeploy IAM 角色取代為下列許可。
-
如需有關 Elastic Load Balancing 許可的資訊,請參閱負載平衡器的 Amazon ECS 基礎結構 IAM 角色。
-
如需有關 Lambda 許可的資訊,請參閱 Amazon ECS 藍/綠部署中 Lambda 函式所需的許可。
-
-
關閉 CodeDeploy 自動化。如需詳細資訊,請參閱 CodeDeploy User Guide 中的 Working with deployment groups in CodeDeploy。
-
確定擁有 CodeDeploy 藍/綠部署中的下列資訊。您可以重複使用這些資訊進行 Amazon ECS 藍/綠部署:
-
生產目標群組
-
生產接聽程式
-
生產規則
-
測試目標群組
這是綠色服務修訂版的目標群組,
-
-
確保 Application Load Balancer 目標群組與接聽程式規則正確建立關聯:
-
如果您未使用測試接聽程式,則兩個目標群組 (生產與測試) 都必須與生產接聽程式規則建立關聯。
-
如果您使用的是測試接聽程式,一個目標群組必須連結至生產接聽程式規則,另一個目標群組則必須連結至測試接聽程式規則。
如果不符合此需求,服務部署將會失敗,並出現下列錯誤:
Service deployment rolled back because of invalid networking configuration. Both targetGroup and alternateTargetGroup must be associated with the productionListenerRule or testListenerRule. -
-
確認服務沒有正在進行的服務部署。如需詳細資訊,請參閱使用 Amazon ECS 服務部署檢視服務歷史記錄。
-
Amazon ECS 藍/綠部署要求服務使用下列其中一項功能:設定相應的資源。
-
Application Load Balancer – 如需詳細資訊,請參閱藍/綠、線性和 Canary 部署的 Application Load Balancer 資源。
-
Network Load Balancer – 如需詳細資訊,請參閱Amazon ECS 藍/綠、線性和 Canary 部署的 Network Load Balancer 資源。
-
Service Connect – 如需詳細資訊,請參閱Amazon ECS 藍色/綠色、線性和 Canary 部署的 Service Connect 資源。
-
-
決定是否要為 Amazon ECS 藍/綠部署中的生命週期階段執行 Lambda 函式。
-
向上擴展前
-
向上擴展後
-
測試流量轉移
-
測試流量轉移後
-
生產流量轉移
-
生產流量轉移後
為每個生命週期階段建立 Lambda 函式。如需詳細資訊,請參閱 AWS Lambda Developer Guide 中的 Create a Lambda function with the console。
-
如需有關更新服務部署控制器的詳細資訊,請參閱更新 Amazon ECS 服務參數。
程序
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
在叢集頁面上,選擇叢集。
「叢集詳細資訊」頁面隨即顯示。
-
從服務索引標籤中選擇服務。
服務詳細資訊頁面隨即顯示。
-
在橫幅中,選擇更新部署控制器類型。
遷移部署控制器類型頁面隨即顯示。
-
展開新增區段,然後指定下列參數。
-
在部署控制器類型欄位中選擇 ECS。
-
在部署策略欄位中選擇藍/綠部署。
-
在封裝時間欄位中,輸入藍色與綠色服務修訂版同時執行的時間。
-
若要為生命週期階段執行 Lambda 函式,請在部署 lifecycle hook 下為每個唯一的 Lambda 函式執行下列動作:
-
選擇新增。
針對每個要執行的唯一函式重複此步驟。
-
在 Lambda 函式欄位中輸入函式名稱。
-
在角色欄位中,選擇您在先決條件中建立的具有藍/綠部署許可的角色。
如需詳細資訊,請參閱Amazon ECS 藍/綠部署中 Lambda 函式所需的許可。
-
在生命週期階段欄位中選取 Lambda 函式執行的階段。
-
(選用) 在勾點詳細資訊欄位中,輸入提供勾點相關資訊的鍵值對。
-
-
-
展開負載平衡區段,並設定下列項目:
-
在角色欄位中,選擇您在先決條件中建立的具有藍/綠部署許可的角色。
如需詳細資訊,請參閱Amazon ECS 藍/綠部署中 Lambda 函式所需的許可。
-
在接聽程式欄位中,從 CodeDeploy 藍/綠部署中選擇生產接聽程式。
-
在生產規則欄位中,從 CodeDeploy 藍/綠部署中選擇生產規則。
-
在測試規則欄位中,從 CodeDeploy 藍/綠部署中選擇測試規則。
-
在目標群組欄位中,從 CodeDeploy 藍/綠部署中選擇生產目標群組。
-
在替代目標群組欄位中,從 CodeDeploy 藍/綠部署中選擇測試目標群組。
-
-
選擇更新。
後續步驟
-
更新服務以開始部署。如需詳細資訊,請參閱更新 Amazon ECS 服務。
-
監控部署程序,確保其遵循藍/綠模式:
-
綠色服務修訂版已建立並向上擴展
-
測試流量會路由至綠色修訂版 (若已設定)
-
生產流量會轉移至綠色修訂版
-
封裝時間過期後,藍色修訂版會終止
-