如何查看 python bigquery 客户端使用的服务帐户?

San*_*ord 4 python google-bigquery google-cloud-platform

要创建默认的 bigquery 客户端,我使用:

from google.cloud import bigquery
client = bigquery.Client()
Run Code Online (Sandbox Code Playgroud)

这使用环境中可用的(默认)凭据。

但是我如何查看使用了哪个(默认)服务帐户?

San*_*ord 5

这让我朝着正确的方向前进:
Google BigQuery Python Client using the bad credential

要查看使用的服务帐户,您可以执行以下操作:

client._credentials.service_account_email
Run Code Online (Sandbox Code Playgroud)

但是:
当您在 jupyter 笔记本(在 Vertex AI 中)上运行它时,上面的语句有效,但是当您在云函数中运行它时,print(client._credentials.service_account_email)它只会记录'default'到 Cloud Logging。但云功能的默认服务帐户应该是:<project_id>@appspot.gserviceaccount.com


这也会给你错误的答案:

client.get_service_account_email()
Run Code Online (Sandbox Code Playgroud)

调用client.get_service_account_email()不会返回凭证的服务帐户电子邮件地址。相反,它会返回用于 KMS 加密/解密的 BigQuery 服务帐户电子邮件地址。