在github操作中处理gcp数据流管道的部署错误

时间:2020-04-17 20:13:14

标签: shell google-cloud-platform google-cloud-dataflow apache-beam github-actions

我正在使用github actions部署gcp数据流管道。基本上,我调用一个shell脚本,该脚本运行以下命令进行部署

python -m pipeline --project_id ${GOOGLE_PROJECT_ID} --job_name "pipeline-name"

这将部署管道,并且github操作会将其显示为成功完成,即使失败也会显示为成功。如果错误失败,我想冒泡。现在有两种方法可以实现

  1. 解析python -m pipeline ...命令的命令输出,看看它是否返回新的管道链接
  2. 使用gcp cli检查是否创建了新管道。这需要在Shell脚本中循环完成。

执行选项1的好处是,我可以立即查看是否已创建管道。但是,如果gcp决定更改url(因为我将使用regex来获取url),则脚本将中断

选项2的好处是,它将与任何潜在更改更加一致(除非cli工具得到升级)。但是,这样做的问题是我不知道管道创建是否成功,因此我必须经过一个循环才能找到,因此,除非发生这种情况,否则我无法耗尽现有管道。 github动作可以显示“正在进行中”一分钟左右。

建议?

1 个答案:

答案 0 :(得分:1)

这似乎是一个很好的用例,在通过自动化工具部署管道方面,Beam的改进范围很大。

如果您打算更新同一管道,则可以潜在地使用Dataflow https://cloud.google.com/dataflow/docs/guides/updating-a-pipeline的更新功能,这样就不必手动耗尽管道。

进入选项1:URL稳定了,但是我同意依靠任何日志格式都会随着时间的流逝而中断。

2:可以查询数据流并按作业名称https://cloud.google.com/sdk/gcloud/reference/dataflow/jobs/list进行过滤。您可以使用它来获取作业并检查作业的状态和创建时间。但是,这对我来说似乎也很脆弱。