CodeDeploy 主要元件 - AWS CodeDeploy

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

CodeDeploy 主要元件

在開始使用服務之前,您應該先熟悉 CodeDeploy 部署程序的主要元件。

應用程式

應用程式是唯一識別您要部署的應用程式的名稱。 CodeDeploy 使用此名稱做為容器使用,以確保在部署期間參考修訂版本、部署組態和部署群組的正確組合。

運算平台

運算平台是 CodeDeploy 部署應用程式的平台。共有三種運算平台:

  • EC2/ 現場部署:描述可以是 Amazon EC2 雲端執行個體、現場部署伺服器或兩者的實體伺服器執行個體。使用 EC2/ 內部部署運算平台建立的應用程式可由可執行檔、組態檔、映像等組成。

    使用 EC2 /內部部署計算平台的部署會使用就地或藍/綠部署類型來管理流量導向至執行個體的方式。如需詳細資訊,請參閱 CodeDeploy 部署類型概觀

  • AWS Lambda:用於部署包含 Lambda 函數的更新版本的應用程式。 AWS Lambda 在由高可用性運算結構組成的無伺服器運算環境中管理 Lambda 函數。計算資源的所有管理都由執行 AWS Lambda。如需詳細資訊,請參閱無伺服器運算與應用程式。如需 AWS Lambda 和 Lambda 函數的詳細資訊,請參閱AWS Lambda

    您可以選擇初期測試、線性或組態,在部署期間管理流量轉移至更新 Lambda 函數版本的方 all-at-once 式。

  • Amazon ECS:用於將 Amazon ECS 容器化應用程式部署為任務集。 CodeDeploy 將應用程式的更新版本安裝為新的取代工作集,以執行藍/綠部署。 CodeDeploy 將原始應用程式工作集的生產流量重新路由傳送至取代工作集。成功部署後,原始任務集會終止。有關 Amazon ECS 的更多信息,請參閱 Amazon 彈性容器服務

    您可以選擇初期測試、線性或規劃,來管理部署期間流量轉移至更新工作集的方 all-at-once 式。

注意

透過和 CodeDeploy 兩者都支援 Amazon ECS 藍/綠部署。 AWS CloudFormation後續各節將說明這些部署的詳細資訊。

部署組態

部署組態是一組部署規則,以及部署成功和失敗條件的部署在部署 CodeDeploy 期間使用。如果您的部署使用 EC2 /內部部署計算平台,您可以指定部署運作狀態良好的執行個體數目下限。如果您的部署使用 AWS Lambda 或 Amazon ECS 運算平台,您可以指定如何將流量路由到更新的 Lambda 函數或 ECS 任務集。

如需針對使用 EC2 /內部部署計算平台之部署指定正常狀態良好的主機數目下限的詳細資訊,請參閱。關於健全狀態執行個體的最小數目

下列部署組態會指定在使用 Lambda 或 ECS 運算平台的部署期間如何路由流量:

  • 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 運算平台上的藍/綠:流量會根據初期測試線性all-at-once部署組態以遞增方式移動。

    • 透過藍/綠部署 AWS CloudFormation:流量會從您目前的資源轉移到更新的資源,做為 AWS CloudFormation 堆疊更新的一部分。目前僅支援 ECS 藍/綠部署。

    如需藍/綠部署的詳細資訊,請參閱 藍/綠部署概述

注意

使用和 CodeDeploy 兩者都支援 Amazon ECS 藍色/綠色部署。 AWS CloudFormation後續各節將說明這些部署的詳細資訊。

IAM 執行個體描述檔

IAM 執行個體設定檔是您附加到 Amazon EC2 執行個體的 IAM 角色。此設定檔包括存取存放應用程式的 Amazon S3 儲存貯體或存 GitHub 放庫所需的許可。如需詳細資訊,請參閱 步驟 4:為您的 Amazon EC2 執行個體建立 IAM 執行個體設定檔

修訂

修訂版是應用程式的版本。 AWS Lambda 部署修訂版本是 YAML 或 JSON 格式的檔案,可指定要部署之 Lambda 函數的相關資訊。EC2 /內部部署修訂版本為包含來源內容 (原始程式碼、網頁、可執行檔和部署指令碼) 和應用程式規格檔案 (檔案) 的封存檔AppSpec 案。 AWS Lambda 修訂版本可存放在 Amazon S3 儲存貯體中。EC2 /內部部署修訂存儲在Amazon S3 儲存貯體或 GitHub 儲存庫中。對於 Amazon S3,修訂版本是由其 Amazon S3 物件金鑰及其 ETag、版本或兩者唯一識別的。對於 GitHub,修訂是由其提交 ID 唯一標識。

服務角色

服務角色是一種 IAM 角色,可授予 AWS 服務許可,以便它可以存取 AWS 資源。您附加至服務角色的原則會決定服務可存取哪些 AWS 資源,以及可以對這些資源執行的動作。對於 CodeDeploy,服務角色可用於下列項目:

  • 讀取套用至執行個體的標籤或與執行個體相關聯的 Amazon EC2 Auto Scaling 群組名稱。這可 CodeDeploy 以識別它可以部署應用程式的執行個體。

  • 在執行個體、Amazon EC2 Auto Scaling 群組和 Elastic Load Balancing 負載平衡器上執行操作。

  • 將資訊發佈到 Amazon SNS 主題,以便在發生指定的部署或執行個體事件時傳送通知。

  • 擷取 CloudWatch 警示的相關資訊,以針對部署設定警示監控。

如需詳細資訊,請參閱 步驟 2:建立服務角色 CodeDeploy

目標修訂

目標修訂版是您已上傳至儲存庫並想要部署到部署群組中的執行個體的最新版本應用程式修訂版本。換言之,就是目前鎖定為部署目標的應用程式修訂版。這也是會拿來自動部署的修訂版。

其他組件

如需 CodeDeploy 工作流程中其他元件的相關資訊,請參閱下列主題: