使用 AWS CodePipeline CI/C AWS D 管道部署 Glue 作业 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS CodePipeline CI/C AWS D 管道部署 Glue 作业

由布鲁诺·克莱因 (AWS) 和 Luis Henrique Massao Yamada () 创作 AWS

环境:生产

技术: DevOps; 大数据

AWS服务:AWSGlue;;AWS CodeCommitAWS CodePipeline;AWSLambda

Summary

此模式演示了如何将 Amazon Web Services (AWS) CodeCommit 和 AWS CodePipeline AWS Glue 集成,并在开发人员将其更改推送到远程AWS CodeCommit 存储库后立即使用 AWS Lambda 启动作业。 

当开发者向提取、转换和加载 (ETL) 存储库提交更改并将更改推送到时 AWS CodeCommit,将调用新的管道。管道会启动一个 Lambda 函数,该函数会启动包含这些更改的 AWS Glue 作业。AWSGlue 作业执行ETL任务。

当企业、开发人员和数据工程师希望在提交更改并将其推送到目标存储库后立即启动作业时,此解决方案非常有用。它有助于实现更高水平的自动化和可重复性,从而避免作业启动和生命周期期间出现错误。

先决条件和限制

先决条件

限制

  • Glue 作业成功启动后,AWS管道即告完成。它不会等待作业结束。

  • 附件中提供的代码仅用于演示目的。

架构

目标技术堆栈

  • AWSGlue

  • AWSLambda

  • AWS CodePipeline

  • AWS CodeCommit

目标架构

开发者将更改推送到存储库后,立即使用 Lambda 启动 Glue CodeCommit 任务。

该过程包括这些步骤:

  1. 开发人员或数据工程师对ETL代码进行修改,提交并将更改推送到AWS CodeCommit。

  2. 推送启动管道。

  3. 管道启动 Lambda 函数,它会调用存储库上的 codecommit:GetFile 并将文件上传到Amazon Simple Storage Service (Amazon S3).。

  4. Lambda 函数使用该代码启动一个新的 Gl AWS ue 作ETL业。

  5. Lambda 函数完成管道。

自动化和扩缩

示例附件演示了如何将 Glue AWS 与集成AWS CodePipeline。它提供了一个基准示例,您可对其进行自定义或扩展以供自己使用。有关详细信息,请参阅操作说明部分。

工具

  • AWS CodePipeline— AWS CodePipeline 是一项完全托管的持续交付服务,可帮助您实现发布管道的自动化,从而实现快速可靠的应用程序和基础架构更新。

  • AWS CodeCommit— AWS CodeCommit 是一项完全托管的源代码控制服务,可托管基于 Git 的安全存储库。

  • AWSLambd a — L AWS ambda 是一项无服务器计算服务,允许您在不预配置或管理服务器的情况下运行代码。

  • AWSG l AWS ue — Glue 是一项无服务器数据集成服务,可轻松发现、准备和合并用于分析、机器学习和应用程序开发的数据。

  • Git 客户端 — Git 提供GUI工具,或者你可以使用命令行或桌面工具从中查看所需的工件 GitHub。 

  • AWSCDK— AWS CDK 是一个开源软件开发框架,可帮助您使用熟悉的编程语言来定义云应用程序资源。

操作说明

任务描述所需技能

配置AWSCLI。

将AWS命令行界面 (AWSCLI) 配置为目标并使用您的当前AWS账户进行身份验证。有关说明,请参阅AWSCLI文档

开发人员、 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

在最后一个命令之后,您可以监视管道和 Glue 作业AWS的状态。

开发人员、 DevOps 工程师

自定义代码。

根据您的业务需求自定义 etl.py 文件代码。您可以修改ETL代码、修改管道阶段或扩展解决方案。

数据工程师

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip