我正在尝试编写脚本来自动执行Java Dataflow作业的部署。该脚本创建一个模板,然后使用命令
gcloud dataflow jobs run my-job --gcs-location=gs://my_bucket/template
问题是,如果作业已经存在并且正在运行,我想更新该作业。如果我通过maven运行作业,则可以进行更新,但是我需要通过gcloud进行更新,这样我才能拥有一个用于部署的服务帐户和一个用于运行该作业的服务帐户。我尝试了其他操作(在命令行中添加--parameters更新),但是我总是遇到错误。有没有一种方法可以通过运行gcloud dataflow作业来专门更新Dataflow作业?
答案 0 :(得分:1)
请参阅official documentation,它描述了gcloud beta dataflow jobs
-一组用于处理Dataflow作业的子命令,因此无法使用gcloud
来更新作业。
就目前而言,Apache Beam SDK提供了一种使用新管道代码更新Dataflow托管服务上正在进行的流作业的方法,您可以找到更多信息here。更新现有数据流作业的另一种方法是使用REST API,您可以在其中找到Java示例。
此外,关于使用gcloud
重新创建作业,请遵循Feature Request。