使用 google bigquery API 时避免 DefaultCredentialsError
Posted
技术标签:
【中文标题】使用 google bigquery API 时避免 DefaultCredentialsError【英文标题】:Avoiding DefaultCredentialsError when using google bigquery API 【发布时间】:2016-12-29 18:34:26 【问题描述】:我正在尝试对某个 bigquery 表执行 SQL 查询。尝试实例化 bigquery 客户端对象时,我不断收到 DefaultCredentialsError
。例如通过这样做:
from google.cloud import bigquery
client = bigquery.Client.from_service_account_json('service_account_key.json')
或者这样做:
from oauth2client.service_account import ServiceAccountCredentials
key = open('service_account_key.json', 'rb').read()
credentials = ServiceAccountCredentials(
'my_email',
key,
scope='https://www.googleapis.com/auth/bigquery')
client = bigquery.Client(credentials=credentials)
我的 .json 凭证文件可能有问题吗?我创建了一个服务帐号密钥:
还有其他建议吗?
【问题讨论】:
您是否尝试过使用(推荐的)GOOGLE_APPLICATION_CREDENTIALS
身份验证方式?见这里:googlecloudplatform.github.io/google-cloud-python/stable/…。你能测试一下这是否有效。
你可能遇到了这个错误 - github.com/GoogleCloudPlatform/google-cloud-python/issues/1883
感谢@GrahamPolley。通过导出 GOOGLE_APPLICATION_CREDENTIALS 位置,我能够使用from_service_account_json
实例化客户端。考虑到我将位置直接传递给from_service_account_json
函数,我不得不这样做是不寻常的
这是个好消息@AlexG。如果其他人遇到与您相同的问题,我现在将发布答案。与此同时,也许你想在这里提出一个问题 -> github.com/GoogleCloudPlatform/google-cloud-python/issues 并记住这可能是由于 github.com/GoogleCloudPlatform/google-cloud-python/issues/1883
【参考方案1】:
使用from_service_account_json
方法,您很可能会遇到bug。
请尝试使用推荐的身份验证方式,将GOOGLE_APPLICATION_CREDENTIALS
环境变量导出为here。
【讨论】:
死链接。现在可以阅读关于here 更新了链接。谢谢。以上是关于使用 google bigquery API 时避免 DefaultCredentialsError的主要内容,如果未能解决你的问题,请参考以下文章
使用 google bigquery API 时避免 DefaultCredentialsError
使用 Python 客户端的 Google BigQuery API
如何使用 Google Natural Language API 丰富 Bigquery 表中的数据?
Google Spark-BigQuery-Connector如何利用BigQuery Storage API?