如何以编程方式在 apache beam python 中提供凭据?

sri*_*rig 3 python google-cloud-platform google-cloud-dataflow airflow apache-beam

我们通过气流使用阿帕奇光束。默认 GCS 帐户是使用环境变量 - GOOGLE_APPLICATION_CREDENTIALS 设置的。我们不想更改环境变量,因为它可能会影响当时运行的其他进程。我找不到以编程方式更改 Google Cloud Dataflow 服务帐户的方法。我们按照以下方式创建管道 p = beam.Pipeline(argv=self.conf)

是否有通过 argv 或选项的任何选项,我可以在其中提到 gcs 凭证文件的位置?搜索了文档,但没有找到太多信息。

Fri*_*ush 5

您可以在使用基本标志启动作业时指定服务帐户: --serviceAccount=my-service-account-name@my-project.iam.gserviceaccount.com

该帐户将需要Dataflow Worker附加的角色以及您想要的任何其他内容(GCS/BQ/等)。详细信息请参见此处。您不需要将 SA 存储在 GCS 中,也不需要本地密钥来使用它。