小编Rax*_*nki的帖子

AWS Glue 的 CI/CD 管道

我是 AWS Glue 的新用户,它是一种新的 AWS 托管服务,可轻松编排批处理作业工作流。

  • 我有 3 个不同的 AWS IAM 账户(Dev、Test、Prod)。每个帐户单独登录。
  • Glue、Scala 作业在我的 Github 存储库中进行版本控制。
  • 我想构建一个 CI/CD 管道,以便在我提交和推送我的 Github 存储库时自动化我的 Glue 作业的测试、构建和部署。

我浏览了许多描述 CI/CD 最佳实践的博客和文章。我发现了一个很好的文章(CI / CD特别在数据管道工作流程)在AWS博客在这里。它非常简单,并且包含使用 CodeCommit 和 AWS Cloudformation 构建 CodePipeline 的详细信息。但是 CI/CD 的所有阶段都在同一个 AWS IAM 账户中启动和结束。

我有两个问题:

  1. 将 Dev、Test 和 Prod 帐户(不同的 IAM)分开来构建和管理数据管道/数据仓库是一个好习惯吗?
  2. 如果是,我将如何使用 3 个不同的 IAM 帐户设计 CI/CD 管道?

关于为 AWS-Glue 设计 CI/CD 管道的最佳实践有什么建议吗?

amazon-web-services aws-codepipeline aws-glue

5
推荐指数
1
解决办法
3419
查看次数

如何在 Glue 作业中访问 AWS Glue 工作流程的运行属性?

我一直在使用 AWS Glue 工作流程来编排批处理作业。我们需要传递下推谓词以限制批处理作业的处理。当我们单独运行 Glue 作业时,我们可以在运行时将下推谓词作为命令行参数传递(即 awsgluestart-job-run --job-name foo.scala --arguments --arg1-text ${arg1} ..)。但是当我们使用glue工作流程来执行Glue作业时,就有点不清楚了。

当我们使用 AWS Glue 工作流程编排 Batch 作业时,我们可以在创建工作流程时添加运行属性。

  1. 我可以使用运行属性来传递我的 Glue Job 的下推谓词吗?
  2. 如果是,那么如何在运行时定义运行属性(下推谓词)的值。我想在运行时定义下推谓词的值的原因是因为谓词每天都会任意变化。(即过去 10 天、过去 20 天、过去 2 天等运行glue-workflow)

我试过:

awsgluestart-workflow-run --name 工作流程名称 | jq -r '.RunId'

awsglue put-workflow-run-properties --name 工作流名称 --run-id "ID" --run-properties --pushdownpredicate="some value"

我可以使用 put-workflow-run-property 查看已传递的运行属性

awsglue put-workflow-run-properties --name 工作流程名称 --run-id "ID"

但我无法在我的胶水作业中检测到“pushdownpredicate”。知道如何在胶水作业中访问工作流的运行属性吗?

在此输入图像描述

amazon-web-services aws-cli aws-glue aws-glue-data-catalog

2
推荐指数
1
解决办法
4514
查看次数