如何使用服务帐户确定 Google BigQuery 作业的状态?

Posted

技术标签:

【中文标题】如何使用服务帐户确定 Google BigQuery 作业的状态?【英文标题】:How to determine the status of a Google BigQuery job using a Service Account? 【发布时间】:2018-11-22 00:20:17 【问题描述】:

我们正在尝试使用 App Engine 中的服务帐号确定 BigQuery 上的作业状态。

以下代码将确定作业的状态,但我们需要将其从使用默认 App Engine 凭据更改为服务帐户。

 credentials = GoogleCredentials.get_application_default()

 bigquery = discovery.build('bigquery', 'v2', credentials=credentials)

 request = bigquery.jobs().get(projectId=PROJECT_ID, jobId=JOB_ID)

 result = request.execute(num_retries=2)

我们将如何更改此设置以使用服务帐号来获取 BigQuery 作业的状态?

【问题讨论】:

【参考方案1】:

尝试直接使用oauth2,像这样:

from google.oauth2 import service_account
credentials = service_account.Credentials.from_service_account_file('./key.json')

您可以通过以下方式安装它:

pip install google-oauth

【讨论】:

酷:)!忘了提一下,如果您使用的是标准环境,现在可以选择使用 python appengine 的second generation。在那里你可以安装任何你想要的库,这样你就可以使用官方客户端连接到 gcp。

以上是关于如何使用服务帐户确定 Google BigQuery 作业的状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用服务帐户访问 Google Doc Api?

如何使用服务帐户密钥通过 ADF 连接到 Google 云存储

如何在 Google Apps 脚本中使用服务帐户对 Google 表格进行身份验证

Google 服务帐户用户界面

如何在 C# 中使用服务帐户登录 Google API - 凭据无效

如何通过 Google Drive .NET API v3 使用服务帐户访问 Team Drive