實作系列 - 1: 建構 AWS 上的 CICD 流程(1)

更新 發佈閱讀 3 分鐘

這次的單元將介紹如何在 AWS 雲端環境上建構 CICD 流程,讓每次上傳程式碼後,能夠自動化執行測試、部署等過程。

AWS 簡介

AWS(Amazon Web Services)是亞馬遜公司提供的雲端服務平台,涵蓋了各式各樣的雲端運算服務,包括計算服務(如 EC2 和 Lambda)、儲存服務(如 S3 和 EBS)、資料庫服務、網路服務等。

由於這次的主題是建立 CICD 流程,因此我們將使用 AWS 的以下三個服務:CodeBuild、CodeDeploy 和 CodePipeline。

運作流程

為了避免過程中出現混亂,我們先來了解完成後的運作方式。以下這張圖可以作為參考:

raw-image

圖源:https://www.ernestchiang.com/zh/notes/aws/codebuild/#文件

一般來說,在 CodePipeline 中,我們會選擇「程式碼來源」、「CodeBuild 項目」和「CodeDeploy 應用程式」,並設定三個相對應的階段內容。

當指定的程式碼分支發生變更時,CodePipeline 會收到最新的內容,並將其交給 CodeBuild。CodeBuild 會根據程式碼資料夾中的 buildspec.yml 文件來建構環境,並執行自動化測試。測試成功後,CodeDeploy 根據設定將程式碼部署到指定位置,如 S3 或本地伺服器等。

在這一過程中,若發生任何錯誤,該階段將會停止,並且你可以隨時重新執行該階段。所有過程的詳細記錄會存儲在 CloudWatch Logs 中。

需要注意的是,當某一階段成功完成後,CodePipeline 會自動觸發下一個階段的執行。因此,如果重新執行 CodeBuild 並成功,CodePipeline 會自動觸發 CodeDeploy 執行,無需手動操作。

建構流程

瞭解了運作流程後,接下來的最佳實踐是:首先建立 CodeBuild 和 CodeDeploy,然後使用 CodePipeline 來確認整體流程的運作。

程式碼來源

程式碼來源可以從許多版本控制系統獲取,例如 GitHub、AWS CodeCommit,或是直接從 Amazon S3 上儲存的程式碼。

由於接下來的 CodeBuild 部分較為細節,我們將在下一篇文章中進行深入介紹,這一篇先到這裡結束,掰掰~

參考資料

  1. https://www.ernestchiang.com/zh/notes/aws/codebuild/#文件
  2. https://shazi.info/一條龍佈署-cicd-從-github-跑-travis-到-aws-codedeploy-travis-到-codedeploy/
留言
avatar-img
林柏宇的沙龍
2會員
57內容數
test
林柏宇的沙龍的其他內容
2025/05/11
在軟體工程中,利用臨時儲存來提升系統性能是個重要的方法。本文深入探討了各種臨時儲存技術的使用模式和特點。將分析不同快取類型如快取的工作原理、 Redis 的高效儲存以及 Session 如何在無狀態的 HTTP 協議中保持用戶狀態。本文將使開發者更瞭解這些技術在提高應用效能中的關鍵角色。
Thumbnail
2025/05/11
在軟體工程中,利用臨時儲存來提升系統性能是個重要的方法。本文深入探討了各種臨時儲存技術的使用模式和特點。將分析不同快取類型如快取的工作原理、 Redis 的高效儲存以及 Session 如何在無狀態的 HTTP 協議中保持用戶狀態。本文將使開發者更瞭解這些技術在提高應用效能中的關鍵角色。
Thumbnail
2025/05/04
本文詳細介紹了 RabbitMQ 的基本概念、架構以及其在現代系統中的重要性。RabbitMQ 作為一套開源的訊息佇列服務,旨在有效管理通訊流,增強系統穩定性和擴展性。透過描述佇列、交換器及消費者等核心組件的功能,並探討其在微服務和事件驅動架構中的應用。
Thumbnail
2025/05/04
本文詳細介紹了 RabbitMQ 的基本概念、架構以及其在現代系統中的重要性。RabbitMQ 作為一套開源的訊息佇列服務,旨在有效管理通訊流,增強系統穩定性和擴展性。透過描述佇列、交換器及消費者等核心組件的功能,並探討其在微服務和事件驅動架構中的應用。
Thumbnail
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
看更多
你可能也想看
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
透過充分利用 AWS Organizations 和 CloudFormation StackSets,您可以更好地實現企業級的雲端管理與控制,為業務的持續發展提供穩固的技術支撐。
Thumbnail
透過充分利用 AWS Organizations 和 CloudFormation StackSets,您可以更好地實現企業級的雲端管理與控制,為業務的持續發展提供穩固的技術支撐。
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
對 AWS Certified Cloud Practitioner 證照考試難度的看法、學習方法和考試內容的介紹。
Thumbnail
對 AWS Certified Cloud Practitioner 證照考試難度的看法、學習方法和考試內容的介紹。
Thumbnail
實驗目的:Lambda@Edge (L@E) 讓 CLoudFront (CF) 回源時,自動選擇較近的 S3 region 回源
Thumbnail
實驗目的:Lambda@Edge (L@E) 讓 CLoudFront (CF) 回源時,自動選擇較近的 S3 region 回源
Thumbnail
在本篇文章中,將會設定 Cloud Run,以便每當將程式修改並推送到 GitHub 時,它都會使用 Cloud Build 自動構建和部署應用程序的最新版本。
Thumbnail
在本篇文章中,將會設定 Cloud Run,以便每當將程式修改並推送到 GitHub 時,它都會使用 Cloud Build 自動構建和部署應用程序的最新版本。
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
分享關於 AWS CLF-C02 考試的準備心得,包括考試主要範圍、準備過程中的學習資源及建議,以及考試當日的流程和心得。希望本文能為欲嘗試取得此認證的人提供心得與參考。
Thumbnail
分享關於 AWS CLF-C02 考試的準備心得,包括考試主要範圍、準備過程中的學習資源及建議,以及考試當日的流程和心得。希望本文能為欲嘗試取得此認證的人提供心得與參考。
Thumbnail
在沒有分環境之前,每一隻lambda只有一個code console給所有人一起編輯,開發好了就deploy,根據設定的trigger觸發執行。 現在我們希望能夠在code console開發,然後deploy到不同的stage,目標是不同stage的api gateway能夠調用該lambda的
Thumbnail
在沒有分環境之前,每一隻lambda只有一個code console給所有人一起編輯,開發好了就deploy,根據設定的trigger觸發執行。 現在我們希望能夠在code console開發,然後deploy到不同的stage,目標是不同stage的api gateway能夠調用該lambda的
Thumbnail
上次我們了解 Pipeline 各自在做什麼是,今天來講解 Gitlab CI/CD 工作相依性,來了解 CI/CD 怎麼依據不同階段,進行工作。 上傳四個工作查看 CI/CD 運作 首先我們先定義我們要做的工作,然後上傳到 GitLab,看結果怎麼樣 run-unit-test: bef
Thumbnail
上次我們了解 Pipeline 各自在做什麼是,今天來講解 Gitlab CI/CD 工作相依性,來了解 CI/CD 怎麼依據不同階段,進行工作。 上傳四個工作查看 CI/CD 運作 首先我們先定義我們要做的工作,然後上傳到 GitLab,看結果怎麼樣 run-unit-test: bef
Thumbnail
前言 什麼是 CI/CD ? CI/CD 可以幫助我們做到什麼事情? 為什麼要有 CI/CD ? 在傳統程式上線流程,例如可能要透過 FTP 上傳至伺服器,接著去修改環境變數,然後測試程式是否運作正常,然後伺服器重新開機就上線了。 在近代程式上線流程,例如說會有個像 Gitlab、GitHub
Thumbnail
前言 什麼是 CI/CD ? CI/CD 可以幫助我們做到什麼事情? 為什麼要有 CI/CD ? 在傳統程式上線流程,例如可能要透過 FTP 上傳至伺服器,接著去修改環境變數,然後測試程式是否運作正常,然後伺服器重新開機就上線了。 在近代程式上線流程,例如說會有個像 Gitlab、GitHub
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News