使用 AWS 代碼管線CI/CD管線部署AWS 膠水工作 - AWS Prescriptive Guidance

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

使用 AWS 代碼管線CI/CD管線部署AWS 膠水工作

由布魯諾·克萊因(AWS)和路易斯·亨里克·馬索山田(AWS)創作

Enimple Enrement 生產

技術:DevOps;大數據

AWS 服務:AWS Glue; AWS CodeCommit; AWS CodePipeline; AWS Lambda

Summary

此模式示範如何將 Amazon Web Services (AWS) CodeCommit 和 AWS CodePipeline 與 AWS Glue 整合,並在開發人員將變更推送到遠端 AWS CodeCommit 存放庫時,使用 AWS Lambda 啟動任務。 

當開發人員送出擷取、轉換和載入 (ETL) 儲存庫的變更,並將變更推送到 AWS CodeCommit 時,會叫用新的管道。管道會啟動 Lambda 函數,以便在這些變更時啟動 AWS Glue 工作。AWS Glue 工作會執行 ETL 工作。

如果企業、開發人員和資料工程師想要在確認變更並推送至目標儲存庫時立即啟動工作,此解決方案非常有幫助。它有助於實現更高的自動化和可重現性,因此避免在任務啟動和生命週期期間發生錯誤。

先決條件和限制

先決條件

限制

  • AWS Glue 工作成功啟動後,管道就會完成。它不會等待這項工作的結論。

  • 附件中提供的程式碼僅供示範用途。

Architecture

目標技術堆疊

  • AWS Glue

  • AWS Lambda

  • AWS CodePipeline

  • AWS CodeCommit

目標架構

這個程序包含以下步驟:

  1. 開發人員或資料工程師對 ETL 程式碼進行修改、提交並將變更推送至 AWS CodeCommit。

  2. 推送會啟動管線。

  3. 管道會啟動 Lambda 函數,它會呼叫codecommit:GetFile,然後將檔案上傳到 Amazon Simple Storage Service (Amazon S3)。

  4. Lambda 函數使用 ETL 程式碼啟動新的 AWS Glue 工作。

  5. Lambda 函數完成管道。

自動化和擴充

範例附件示範如何將 AWS Glue 與 AWS CodePipeline 整合。它提供您可加以自訂或擴充以供您自己使用。如需詳細資訊,請參閱史詩部分。

Tools

  • AWS CodePipeline— AWS CodeCommit 是全受管持續交付服務,可協助您將發行管線自動化,以進行快速且可靠的應用程式和基礎結構更新。

  • AWS CodeCommit— AWS CodeCommit 是全受管來源控制服務,主控安全、以 GIT 為基礎的存放庫。

  • AWS Lambda— AWS Lambda 是無伺服器運算服務,可讓您執行程式碼,無需佈建或管理伺服器。

  • AWS Glue— AWS Glue 是無伺服器資料整合服務,可讓您輕鬆探索、準備和合併資料,以進行分析、機器學習和應用程式開發。

  • Git 用戶端— Git 提供 GUI 工具,或者您可以使用命令列或桌面工具從 GitHub 檢出所需的成品。 

  • AWS CDK— AWS CDK 是開放原始碼軟體開發架構,可協助您使用熟悉的程式設計語言來定義雲端應用程式資源。

Epics

任務描述所需技能
設定 AWS CLI。

設定 AWS Command Line Interface (AWS CLI),以使用您目前的 AWS 帳戶進行鎖定和驗證。如需說明,請參閱AWS CLI 文件

DevOps 人員、開發作業工程師
擷取範例專案檔。

從附件中解壓縮檔案,以建立包含範例專案檔案的資料夾。

DevOps 人員、開發作業工程師
部署範例程式碼。

擷取檔案後,請從擷取位置執行下列命令來建立基準線範例:

cdk bootstrap cdk deploy git init git remote add origin <code-commit-repository-url> git stage . git commit -m "adds sample code" git push --set-upstream origin main

在最後一個命令之後,您可以監控管線的狀態和 AWS Glue 工作。

DevOps 人員、開發作業工程師
自訂程式碼。

根據您的業務需求自訂 etl.py 檔案的程式碼。您可以修改 ETL 程式碼、修改管線階段,或擴充解決方案。

資料工程師

Attachments

attachment.zip