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

how to provide credentials in apache beam python programmatically?

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

有没有通过 argv 或 options 的选项,我可以在哪里提到 gcs 凭证文件的位置? 搜索了文档,但没有找到太多信息。

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

该帐户需要附加 Dataflow Worker 角色以及您想要的任何其他角色 (GCS/BQ/Etc)。 Details here。您不需要将 SA 存储在 GCS 中,也不需要在本地使用密钥来使用它。