本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 中建立不支援 AWS 區域 的管道 AWS CodePipeline
Anand Krishna Varanasi,Amazon Web Services
摘要
AWS CodePipeline 是一種持續交付 (CD) 協調服務,屬於 Amazon Web Services (AWS) 的一組 DevOps 工具。它與各種來源 (例如版本控制系統和儲存解決方案)、來自 AWS 和 AWS 合作夥伴的持續整合 (CI) 產品和服務,以及開放原始碼產品整合,以提供end-to-end工作流程服務,以進行快速的應用程式和基礎設施部署。
不過,CodePipeline 並不支援所有 AWS 區域,而且具有連接 AWS CI/CD 服務的隱藏協調器很有用。此模式說明如何在其中實作end-to-end工作流程管道 AWS 區域 ,其中 CodePipeline 尚未支援使用 AWS CI/CD 服務 AWS CodeCommit,例如 AWS CodeBuild和 AWS CodeDeploy。
先決條件和限制
先決條件
作用中 AWS 帳戶
AWS Cloud Development Kit (AWS CDK) CLI 2.28 版或更新版本
Architecture
下圖顯示在不支援 CodePipeline 的區域中建立的管道,例如非洲 (開普敦) 區域。開發人員會將 CodeDeploy 組態檔案 (也稱為部署生命週期掛鉤指令碼) 推送至 CodeCommit 託管的 Git 儲存庫。(請參閱此模式隨附的 GitHub 儲存庫
CodeDeploy 組態檔案會從 CodeCommit 擷取,做為管道來源階段的一部分,並傳輸至 CodeBuild。
在下一個階段,CodeBuild 會執行這些任務:
下載應用程式原始碼 TAR 檔案。您可以使用 參數存放區 的功能來設定此檔案名稱 AWS Systems Manager。
下載 CodeDeploy 組態檔案。
建立特定於應用程式類型的應用程式原始碼和 CodeDeploy 組態檔案的合併封存。
使用合併封存啟動 CodeDeploy 部署至 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。

工具
AWS 服務
AWS CodeBuild 是一種全受管建置服務,可協助您編譯原始程式碼、執行單元測試,並產生準備好部署的成品。
AWS CodeCommit 是一種版本控制服務,可協助您私下存放和管理 Git 儲存庫,而無需管理您自己的來源控制系統。
AWS CodeDeploy 會自動部署到 Amazon EC2 或內部部署執行個體、 AWS Lambda 函數或 Amazon Elastic Container Service (Amazon ECS) 服務。
AWS CodePipeline 可協助您快速建模和設定軟體版本的不同階段,並自動化持續發行軟體變更所需的步驟。
AWS Cloud Development Kit (AWS CDK) 是一種軟體開發架構,可協助您在程式碼中定義和佈建 AWS 雲端 基礎設施。
Code
此模式的程式碼可在 GitHub CodePipeline 不支援的區域
史詩
| 任務 | 說明 | 所需的技能 |
|---|---|---|
安裝 AWS CDK CLI。 | 如需說明,請參閱 AWS CDK 文件。 | AWS DevOps |
安裝 Git 用戶端。 | 若要建立遞交,您可以使用安裝在本機電腦上的 Git 用戶端,然後將遞交推送到 CodeCommit 儲存庫。若要使用 Git 用戶端設定 CodeCommit,請參閱 CodeCommit 文件。 | AWS DevOps |
安裝 npm。 | 安裝 npm 套件管理員。如需詳細資訊,請參閱 npm 文件 | AWS DevOps |
| 任務 | 說明 | 所需的技能 |
|---|---|---|
複製程式碼儲存庫。 | 執行下列命令,將 GitHub CodePipeline 不支援的區域
| DevOps 工程師 |
在 cdk.json 中設定參數。 | 開啟
其中:
| AWS DevOps |
設定 AWS CDK 建構程式庫。 | 在複製的 GitHub AWS CDK 儲存庫中,使用下列命令來安裝建構程式庫、建置您的應用程式,以及合成以產生應用程式的 AWS CloudFormation 範本。
| AWS DevOps |
部署範例 AWS CDK 應用程式。 | 在不支援的區域 (例如 ) 中執行下列命令來部署程式碼
| AWS DevOps |
| 任務 | 說明 | 所需的技能 |
|---|---|---|
設定應用程式的 CI/CD。 | 複製您在
其中儲存庫名稱和區域取決於您在 | AWS DevOps |
| 任務 | 說明 | 所需的技能 |
|---|---|---|
使用部署指示測試管道。 | GitHub CodePipeline 不支援區域 | AWS DevOps |
相關資源
入門 (AWS CDK 文件)
簡介 AWS Cloud Development Kit (AWS CDK)
(AWS Workshop Studio)