有没有办法使用 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
重新创建作业的信息。
我正在尝试编写一个脚本来自动部署 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
重新创建作业的信息。