本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CodeDeploy 主要元件
開始使用 服務之前,您應該先熟悉 CodeDeploy 部署程序的主要元件。
應用程式
應用程式是可唯一識別您要部署之應用程式的名稱。 CodeDeploy 會使用此名稱做為容器,以確保在部署期間參考修訂、部署組態和部署群組的正確組合。
運算平台
運算平台是 CodeDeploy 部署應用程式的平台。有三個運算平台:
EC2/內部部署 :描述實體伺服器的執行個體,可以是 Amazon EC2雲端執行個體、內部部署伺服器或兩者。使用 EC2/內部部署運算平台建立的應用程式可以由可執行檔、組態檔案、映像等組成。
使用 EC2/On-Premises 運算平台的部署會管理流量導向執行個體的方式,方法是使用就地部署或藍/綠部署類型。如需詳細資訊,請參閱 CodeDeploy 部署類型概觀。
AWS Lambda :用於部署包含更新版 Lambda 函數的應用程式。在由高可用性運算結構組成的無伺服器運算環境中 AWS Lambda 管理 Lambda 函數。運算資源的所有管理都由 執行 AWS Lambda。如需詳細資訊,請參閱 Serverless Computing and Applications
。如需 AWS Lambda 和 Lambda 函數的詳細資訊,請參閱 AWS Lambda 。 您可以透過選擇 Canary、線性或 all-at-once 組態,管理流量在部署期間轉移到更新 Lambda 函數版本的方式。
Amazon ECS:用於將 Amazon ECS容器化應用程式部署為任務集。 CodeDeploy 透過將應用程式的更新版本安裝為新的替代任務集來執行藍/綠部署。將原始應用程式任務集的生產流量重新 CodeDeploy 路由至替代任務集。成功部署後,原始任務集會終止。如需 Amazon 的詳細資訊ECS,請參閱 Amazon Elastic Container Service
。 您可以透過選擇 Canary、線性或 all-at-once 組態,管理流量在部署期間轉移到更新任務集的方式。
注意
透過 CodeDeploy 和 支援 Amazon ECS 藍/綠部署 AWS CloudFormation。後續各節將說明這些部署的詳細資訊。
部署組態
部署組態是一組部署規則,以及部署 CodeDeploy 期間 使用的部署成功和失敗條件。如果您的部署使用 EC2/內部部署運算平台,您可以指定部署的健康執行個體數目下限。如果您的部署使用 AWS Lambda 或 Amazon ECS運算平台,您可以指定流量路由至更新後的 Lambda 函數或ECS任務集的方式。
如需為使用 EC2/內部部署運算平台的部署指定運作狀態良好的主機數目下限的詳細資訊,請參閱 關於健全狀態執行個體的最小數目。
下列部署組態會指定使用 Lambda 或ECS運算平台的部署期間,流量的路由方式:
Canary:流量以兩個增量轉移。您可以選擇預先定義的 Canary 選項,以第一增量指定在剩餘流量以第二增量轉移之前,轉移到更新後的 Lambda 函數或ECS任務集的流量百分比,並以分鐘為單位。
Linear (線性):流量以每個增量之間的相等分鐘數以同等增量轉移。您可從預先指定的線性選項中指定每次增量的流量轉移百分比例,以及在每個增量之間的分鐘數。
ll-at-once:所有流量都會一次從原始 Lambda 函數或ECS任務集切換到更新的函數或任務集。
部署群組
部署群組是一組個別執行個體。部署群組包含個別標記的執行個體、Amazon EC2 Auto Scaling 群組中的 Amazon EC2執行個體,或兩者。如需 Amazon EC2執行個體標籤的相關資訊,請參閱使用主控台 使用標籤。如需內部部署執行個體的資訊,請參閱「Working with On-Premises Instances」。如需 Amazon EC2 Auto Scaling 的相關資訊,請參閱 CodeDeploy 與 Amazon EC2 Auto Scaling 集成。
部署類型
部署類型是一種方法,用於在部署群組中的執行個體上提供最新的應用程式修訂版。有兩個部署類型:
就地部署 :部署群組中每個執行個體上的應用程式都會停止、安裝最新的應用程式修訂版,並啟動和驗證應用程式的新版本。您可以使用負載平衡器,以便在每個執行個體部署期間取消註冊,然後在部署完成後還原至服務。只有使用 EC2/內部部署運算平台的部署才能使用就地部署。如需就地部署的詳細資訊,請參閱 就地部署概述。
藍/綠部署:部署的行為取決於您使用的運算平台:
-
EC2/內部部署運算平台上的藍/綠:部署群組 (原始環境) 中的執行個體會由一組不同的執行個體 (替代環境) 取代,步驟如下:
-
為替代環境佈建執行個體。
-
最新的應用程式修訂版會安裝在取代執行個體上。
-
應用程式測試和系統驗證等活動會有選擇性的等待時間。
-
替換環境中的執行個體會向一或多個 Elastic Load Balancing 負載平衡器註冊,導致流量重新路由至它們。原始環境中的執行個體會取消註冊,並可終止或繼續執行供其他使用。
注意
如果您使用 EC2/內部部署運算平台,請注意藍/綠部署僅適用於 Amazon EC2執行個體。
-
-
AWS Lambda 或 Amazon ECS運算平台上的藍/綠 :流量會根據 Canary 、線性 或all-at-once部署組態遞增。
-
透過 的藍/綠部署 AWS CloudFormation:流量會從您目前的資源轉移到已更新的資源,作為 AWS CloudFormation 堆疊更新的一部分。目前僅支援ECS藍/綠部署。
如需藍/綠部署的詳細資訊,請參閱 藍/綠部署概述。
-
注意
使用 CodeDeploy 和 支援 Amazon ECS 藍/綠部署 AWS CloudFormation。後續各節將說明這些部署的詳細資訊。
IAM 執行個體設定檔
IAM 執行個體設定檔是您連接至 Amazon EC2執行個體IAM的角色。此設定檔包含存取存放應用程式之 Amazon S3 儲存貯體或 GitHub 儲存庫所需的許可。如需詳細資訊,請參閱步驟 4:為您的 Amazon IAM執行個體建立EC2執行個體設定檔。
修訂
修訂是您應用程式的版本。 AWS Lambda 部署修訂版本是 JSONYAML或 格式的檔案,可指定要部署的 Lambda 函數相關資訊。EC2/內部部署部署修訂是封存檔案,其中包含來源內容 (原始程式碼、網頁、可執行檔和部署指令碼) 和應用程式規格檔案 (AppSpec 檔案)。 AWS Lambda 修訂版可以存放在 Amazon S3 儲存貯體中。EC2/內部部署修訂儲存在 Amazon S3 儲存貯體或 GitHub 儲存庫中。對於 Amazon S3,修訂由其 Amazon S3 物件金鑰及其 ETag、版本或兩者唯一識別。對於 GitHub,修訂會以其遞交 ID 唯一識別。
服務角色
服務角色是授予 AWS 服務許可IAM的角色,以便其存取 AWS 資源。您連接至服務角色的政策決定服務可存取 AWS 的資源,以及該服務可以使用這些資源執行的動作。對於 CodeDeploy,服務角色會用於下列項目:
-
讀取套用至執行個體的標籤,或與執行個體相關聯的 Amazon EC2 Auto Scaling 群組名稱。這 CodeDeploy 可以識別可以部署應用程式的執行個體。
-
在執行個體、Amazon EC2 Auto Scaling 群組和 Elastic Load Balancing 負載平衡器上執行操作。
-
將資訊發佈至 Amazon SNS主題,以便在發生指定部署或執行個體事件時傳送通知。
-
擷取 CloudWatch 警示的相關資訊,以設定部署的警示監控。
如需詳細資訊,請參閱步驟 2:建立服務角色 CodeDeploy。
目標修訂版
目標修訂是您上傳至儲存庫且想要部署至部署群組中執行個體的最新版本應用程式修訂。換言之,就是目前鎖定為部署目標的應用程式修訂版。這也是會拿來自動部署的修訂版。
其他元件
如需有關 CodeDeploy 工作流程中其他元件的資訊,請參閱下列主題: