Google App Engine - 401请求BigQuery API时

时间:2017-01-21 21:38:38

标签: python google-app-engine google-bigquery

我看到了一些类似的问题,但实际上没有一个问题能够解决这个问题。

我得到的信息就是这个:

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 个答案:

答案 0 :(得分:1)

确保:

  1. 您已创建了一个分配了正确IAM角色的服务帐户。
  2. 导出环境变量GOOGLE_APPLICATION_CREDENTIALS以指向在步骤1中创建的文件。
  3. 然后它会起作用。可以找到更多详细信息here