有没有办法使用 gcloud 命令更新数据流作业?

Is there a way to update a Dataflow job using the gcloud command?

我正在尝试编写一个脚本来自动部署 Java 数据流作业。该脚本创建一个模板,然后使用命令

gcloud dataflow jobs run my-job --gcs-location=gs://my_bucket/template

问题是,如果作业已经存在并且正在 运行ning,我想更新作业。如果我通过 maven 运行 作业,我可以进行更新,但我需要通过 gcloud 进行更新,这样我就可以拥有一个用于部署的服务帐户和另一个用于 运行 作业的服务帐户。我尝试了不同的方法(将 --parameters update 添加到命令行),但我总是遇到错误。有没有办法通过 gcloud dataflow jobs 运行?

专门更新 Dataflow 作业

参考 official documentation,它描述了 gcloud beta dataflow jobs - 一组用于处理数据流作业的子命令,不可能使用 gcloud 来更新作业。

就目前而言,Apache Beam SDK 提供了一种使用新管道代码更新 Dataflow 托管服务上正在进行的流作业的方法,您可以找到更多信息 here. Another way of updating an existing Dataflow job is by using REST API,您可以在其中找到 Java例子。

此外,请遵循 Feature Request 关于使用 gcloud 重新创建作业的信息。