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

如何通过Python Google API Client在GCP中激活BigQuery API?

使用Python Google API Client启用GCP BigQuery API

完全可以用Python Google API Client实现BigQuery API的激活操作,核心是调用GCP的Service Usage API(负责管理GCP服务的启用/禁用状态)。以下是具体实现步骤:

前置准备

  • 安装依赖库:
    pip install google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib
    
  • 确保你的身份(服务账号或用户账号)拥有目标GCP项目的Service Usage API Editor权限,或更高权限(比如项目编辑者)
  • 若使用服务账号,需下载对应的JSON密钥文件,并设置环境变量:
    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    

代码实现示例

from google.oauth2 import service_account
from googleapiclient.discovery import build
import os

# 替换为你的GCP项目ID
PROJECT_ID = "your-gcp-project-id"
BIGQUERY_API_NAME = "bigquery.googleapis.com"
SERVICE_USAGE_API_VERSION = "v1"

def enable_bigquery_api():
    # 认证并构建Service Usage API客户端
    credentials = service_account.Credentials.from_service_account_file(
        filename=os.environ.get("GOOGLE_APPLICATION_CREDENTIALS"),
        scopes=["https://www.googleapis.com/auth/cloud-platform"]
    )
    service = build("serviceusage", SERVICE_USAGE_API_VERSION, credentials=credentials)

    # 提交API启用请求
    request = service.services().enable(name=f"projects/{PROJECT_ID}/services/{BIGQUERY_API_NAME}")
    response = request.execute()

    print("BigQuery API启用请求提交成功,响应信息:")
    print(response)

if __name__ == "__main__":
    enable_bigquery_api()

额外说明

  • 可以通过以下代码检查API当前状态:
    def check_api_status():
        credentials = service_account.Credentials.from_service_account_file(
            filename=os.environ.get("GOOGLE_APPLICATION_CREDENTIALS"),
            scopes=["https://www.googleapis.com/auth/cloud-platform"]
        )
        service = build("serviceusage", SERVICE_USAGE_API_VERSION, credentials=credentials)
        response = service.services().get(name=f"projects/{PROJECT_ID}/services/{BIGQUERY_API_NAME}").execute()
        print(f"当前API状态:{response['state']}")
    
  • API启用后通常需要1-2分钟才能完全生效,期间临时出现"API未启用"报错属于正常现象
  • 若遇到权限错误,检查账号是否拥有serviceusage.services.enable权限

内容的提问来源于stack exchange,提问作者Nelson Mauricio Villamizar Pal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:55:34