[英]How to implement a CI/CD pipeline for Apache Beam/Dataflow classic templates (Python) & data pipelines
在 Python 中为 Apache Beam/Dataflow 经典模板和管道实施 CI/CD 构建过程的最佳方法是什么? 我只找到了 Java 的教程,其中包括工件注册表 + Cloud Build,但很少有任何针对 Python 的深入教程。我想了解在 Github 回购中开发管道的“最佳实践”方法,然后一个 CI/CD 管道,可以自动执行暂存模板和启动工作。
这篇 Medium 帖子是更有帮助的高级演练之一,但没有深入探讨让所有工具协同工作: https://medium.com/posh-engineering/how-to-deploy-your- apache-beam-pipeline-in-google-cloud-dataflow-3b9fe431c7bb
我在 GitLab 中使用带有 CI/CD 管道的光束/数据流管道。 这些是我的 CI/CD 管道所遵循的步骤:
在我的.gitlab-ci.yml
文件中,我提取了一个google/cloud-sdk
Docker 图像,它使用 python3.8 和 gcloud 工具的基本要素创建了一个环境。
之后,我运行管道的单元测试和集成测试。 成功后,我尝试使用gcloud builds submit
命令构建一个 flex 模板(在您的情况下,您想构建一个经典模板)。
此外,如果您想在所有这些之后自动加快工作,您有两个选择:
是的,对我来说,Medium 帖子实际上涵盖了大部分内容,并帮助我构建了我的 CI 管道。
这些是我的阶段:
gcloud dataflow jobs run ${JOB_NAME}...
的数据流运行器的另一个作业。对于大多数步骤,我使用 python:3.10 图像作为默认图像(我在使用 Python 3.11 安装 apache-beam 依赖项时遇到了问题),并使用 google/cloud-sdk alpine 作为 gcloud 步骤。
我们还需要考虑其他事项,例如停止数据流作业和回滚到以前工作的数据流模板的操作(需要将多个模板上传到 GCS)。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.