You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Cloud Shell中执行Python调用BigQuery时跳过首次认证的方法

如何在Cloud Shell中运行BigQuery Python代码时跳过认证请求

要解决首次运行时弹出认证请求的问题,核心是直接使用服务账号密钥文件完成认证,替代Cloud Shell默认的交互式认证流程。同时先修正你代码里的几个错误:

代码中的错误修正

  • 重复导入了google.cloud.bigquery,删除多余的导入语句
  • 拼写错误:bigqyery.Clinet应该改为bigquery.Client
  • 不要重复初始化client对象,直接用服务账号文件初始化即可

完整解决方案

  1. 准备服务账号密钥文件

    • 在Google Cloud控制台创建一个具备BigQuery权限的服务账号(至少需要BigQuery Data Viewer和BigQuery Job User权限)
    • 下载该服务账号的JSON密钥文件,上传到Cloud Shell的工作目录中(比如命名为service-account-key.json)
  2. 修正后的代码

from google.cloud import bigquery
from google.cloud.exceptions import NotFound
from google.oauth2 import service_account

# 直接用服务账号密钥文件初始化BigQuery客户端,跳过交互式认证
client = bigquery.Client.from_service_account_file('service-account-key.json')

project_id = 'esoteric-portal-365109'

query_job = """
    SELECT * FROM `esoteric-portal-365109.dataset1.students` 
    WHERE DATE(_PARTITIONTIME) = "2022-11-03" 
    LIMIT 100
"""
# 执行查询并获取结果
results = client.query(query_job).result()

# 打印查询结果
for row in results:
    print(row)
  1. 额外说明
    • 确保服务账号密钥文件的路径正确,如果放在子目录里要写全路径
    • 运行代码前不需要执行gcloud auth login之类的命令,代码会直接通过服务账号完成认证,不会弹出交互式请求

内容的提问来源于stack exchange,提问作者Max Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:10:44