Google App Engine - 请求 BigQuery API 时出现 401
Posted
技术标签:
【中文标题】Google App Engine - 请求 BigQuery API 时出现 401【英文标题】:Google App Engine - 401 when requesting BigQuery API 【发布时间】:2017-01-21 21:38:37 【问题描述】:我看到了一些类似的问题,但没有一个真正给出这个问题的具体解决方案。
我收到的消息是这样的:
HttpError 401 when requesting https://www.googleapis.com/bigquery/v2/projects/project/queries?alt=json returned "Invalid Credentials"
连接到 BigQuery 的代码:
appname = get_application_id()
project_id = appname
# Grab the application's default credentials from the environment.
credentials = GoogleCredentials.get_application_default()
# Construct the service object for interacting with the BigQuery API.
bigquery_service = build('bigquery', 'v2', credentials=credentials)
query_request = bigquery_service.jobs()
query_data =
'query': query,
'useLegacySql': use_legacy_sql
query_response = query_request.query(
projectId=project_id,
body=query_data).execute()
此问题的原因可能是什么?
【问题讨论】:
【参考方案1】:确保:
-
您已创建一个分配了正确 IAM 角色的服务帐号。
已导出环境变量
GOOGLE_APPLICATION_CREDENTIALS
以指向在步骤1 中创建的文件。
然后它将起作用。更多详情请见here。
【讨论】:
以上是关于Google App Engine - 请求 BigQuery API 时出现 401的主要内容,如果未能解决你的问题,请参考以下文章
Google App Engine 上的 python 请求不适用于 HTTPS
Google App Engine 上的传出 HTTP 请求位置
Google App Engine - 请求 BigQuery API 时出现 401
Google App Engine 错误:获取的线程既不是原始请求线程也不是 ThreadManager 创建的线程