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

更新 發佈閱讀 5 分鐘

CodeDeploy 簡介

AWS CodeDeploy 的主要目的是將部署過程變得自動化、高效且無需人工干預,並且支援藍綠部署、滾動部署等多種部署策略,有助於確保應用程式的高可用性和持續交付。

CodeDeploy 的工作流程大致如下:

  1. 創建部署組:部署組定義了目標實例,並指定在哪些實例上進行部署。
  2. 建立部署應用程式:在 CodeDeploy 中,首先需要創建一個應用程式(Application),並將其與特定的部署組關聯。這樣 CodeDeploy 就能知道目標實例或 Lambda 函數。
  3. 設定部署規範文件(appspec.yml):appspec.yml 是 CodeDeploy 用來執行如何將應用程式部署到目標實例的配置文件。
  4. 執行部署:一旦配置完成,便可以執行部署流程。
  5. 監控與回滾:部署成功後,應用程式會被標記為「已部署」,若發生錯誤,系統將根據設置的策略進行回滾。

部署規範文件與範例

部署規範文件相較於建構規範文件簡單許多,通常包含四個主要項目:

  • version:定義文件格式的版本。
  • os:指定部署的操作系統(通常為 linuxwindows)。
  • files:定義需要部署的文件及其目標位置。
  • hooks:定義在不同階段執行的命令或腳本(如安裝前、安裝後等)。
version: 0.0
os: linux
files:
- source: /app/*
destination: /var/www/app
hooks:
BeforeInstall:
- location: scripts/stop_server.sh
timeout: 300
AfterInstall:
- location: scripts/start_server.sh
timeout: 300
ApplicationStart:
- location: scripts/application_start.sh
timeout: 300

建造 CodePipeline

完成 CodeBuild 和 CodeDeploy 的配置後,我們可以開始建立 CodePipeline,以實現整個 CICD 流程。建立方法有兩種:

  1. 使用 AWS 管理控制台:透過 AWS 管理控制台建立 CodePipeline,只需在介面上新增並設定連結即可。然而,這種方式有很多細節需要注意。
  2. 使用 AWS CLI 指令:需要編寫配置文件並使用指令執行,之後再到 AWS 控制台檢查設定並進行調整。

從長遠來看,使用 AWS CLI 創建 CodePipeline 會更具靈活性。這樣不僅可以更精確地自訂 CodePipeline 的內容,還可以為將來創建其他 CodePipeline 提供可重複使用的配置文件,避免因為手動設置而造成疏失與錯誤。

當然,這種方法的缺點是,CodePipeline 的配置文件相對較為複雜,需要更多的學習和操作。

另外,要特別注意的是,每次在管理控制台中操作並更新 CodePipeline 後,必須點擊右上角的 Release Change 按鈕,以確保更新生效。

結語

至此,我們已經大致介紹了如何在 AWS 上建構完整的 CICD 流程。從 CodeBuild 到 CodeDeploy,再到 CodePipeline,每個步驟都至關重要,並協同工作確保應用程式能夠高效、自動化地部署。

謝謝大家的閱讀!希望這些內容能幫助你在實踐中順利搭建 AWS 上的 CICD 流程。

參考資料

  1. https://www.ernestchiang.com/zh/notes/aws/codebuild/#文件
  2. https://shazi.info/一條龍佈署-cicd-從-github-跑-travis-到-aws-codedeploy-travis-到-codedeploy/
  3. https://aws.plainenglish.io/how-to-run-local-builds-using-the-aws-codebuild-agent-13bd78dacbf2
  4. https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
留言
avatar-img
留言分享你的想法!
avatar-img
林柏宇的沙龍
2會員
57內容數
test
林柏宇的沙龍的其他內容
2025/05/25
這篇文章繼續介紹 AWS CICD 的流程,特別是如何建立和配置 buildspec.yml 文件。內容涵蓋建構階段、環境變數設定、緩存策略及建構產物的定義等重要部分,並提供範例以助於讀者理解。進一步提升 CICD 流程的效率,是開發者與團隊的寶貴資源。
Thumbnail
2025/05/25
這篇文章繼續介紹 AWS CICD 的流程,特別是如何建立和配置 buildspec.yml 文件。內容涵蓋建構階段、環境變數設定、緩存策略及建構產物的定義等重要部分,並提供範例以助於讀者理解。進一步提升 CICD 流程的效率,是開發者與團隊的寶貴資源。
Thumbnail
2025/05/18
本文將介紹如何在 AWS 雲端環境中建立 CI/CD 流程,涵蓋使用 AWS 的 CodeBuild、CodeDeploy 和 CodePipeline 等服務。這個流程讓每次程式碼上傳後,可以自動化執行測試和部署。文章中將說明運作流程、建構過程以及最佳實踐,幫助讀者順利導入 CI/CD。
Thumbnail
2025/05/18
本文將介紹如何在 AWS 雲端環境中建立 CI/CD 流程,涵蓋使用 AWS 的 CodeBuild、CodeDeploy 和 CodePipeline 等服務。這個流程讓每次程式碼上傳後,可以自動化執行測試和部署。文章中將說明運作流程、建構過程以及最佳實踐,幫助讀者順利導入 CI/CD。
Thumbnail
2025/05/11
在軟體工程中,利用臨時儲存來提升系統性能是個重要的方法。本文深入探討了各種臨時儲存技術的使用模式和特點。將分析不同快取類型如快取的工作原理、 Redis 的高效儲存以及 Session 如何在無狀態的 HTTP 協議中保持用戶狀態。本文將使開發者更瞭解這些技術在提高應用效能中的關鍵角色。
Thumbnail
2025/05/11
在軟體工程中,利用臨時儲存來提升系統性能是個重要的方法。本文深入探討了各種臨時儲存技術的使用模式和特點。將分析不同快取類型如快取的工作原理、 Redis 的高效儲存以及 Session 如何在無狀態的 HTTP 協議中保持用戶狀態。本文將使開發者更瞭解這些技術在提高應用效能中的關鍵角色。
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
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
AWS CloudFront + S3 遇到 CORS 解決方式
Thumbnail
AWS CloudFront + S3 遇到 CORS 解決方式
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
分享關於 AWS CLF-C02 考試的準備心得,包括考試主要範圍、準備過程中的學習資源及建議,以及考試當日的流程和心得。希望本文能為欲嘗試取得此認證的人提供心得與參考。
Thumbnail
分享關於 AWS CLF-C02 考試的準備心得,包括考試主要範圍、準備過程中的學習資源及建議,以及考試當日的流程和心得。希望本文能為欲嘗試取得此認證的人提供心得與參考。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News