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

无用户登录场景下,后端调用Vertex AI如何获取有效访问令牌?

解决Vertex AI后端请求的令牌过期问题

核心方案:用服务账号自动管理令牌生命周期

由于你是向自身项目发起请求,无需用户登录,最佳方式是通过服务账号密钥结合Google官方客户端库,自动处理令牌的获取与过期刷新,完全不用手动维护令牌。

步骤1:创建并配置服务账号

  • 进入Google Cloud Console的「IAM与管理员」>「服务账号」页面,创建新服务账号。
  • 为该服务账号分配最小必要权限,比如Vertex AI User(仅用于调用Vertex AI)或根据需求调整。
  • 生成并下载该服务账号的JSON格式密钥文件,存储到后端服务器的安全目录(绝对不能泄露或提交到代码仓库)。

步骤2:用客户端库自动处理令牌(推荐)

Google官方客户端库会自动完成令牌的获取、缓存和到期刷新,无需手动干预。以Python为例:

  1. 设置环境变量指向密钥文件:
    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    
  2. 调用Vertex AI的示例代码:
    from google.cloud import aiplatform
    
    # 初始化Vertex AI客户端
    aiplatform.init(project="你的项目ID", location="us-central1")
    
    # 指定模型(以Text Bison为例)
    model = aiplatform.Model("projects/你的项目ID/locations/us-central1/models/text-bison@001")
    
    # 发起请求
    response = model.predict(
        instances=[{"prompt": "你的提示词内容"}],
        parameters={"temperature": 0.7, "max_output_tokens": 256}
    )
    
    print(response.predictions)
    

步骤3:手动获取可刷新的令牌(非必要场景)

如果无法使用客户端库,可通过服务账号密钥手动生成并刷新令牌:

import requests
from google.oauth2 import service_account

# 定义权限范围
SCOPES = ["https://www.googleapis.com/auth/cloud-platform"]
# 密钥文件路径
SERVICE_ACCOUNT_FILE = "/path/to/your/service-account-key.json"

# 生成凭证对象
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES
)

# 获取当前访问令牌
access_token = credentials.token

# 令牌过期时,调用以下代码刷新
if credentials.expired:
    credentials.refresh(requests.Request())
    new_access_token = credentials.token

注意事项

  • 服务账号密钥需严格保密,一旦泄露立即在Cloud Console中吊销并重新生成。
  • 权限遵循最小化原则,避免给服务账号分配过高权限(如Owner)。

内容的提问来源于stack exchange,提问作者Muhammed Tüfekyapan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:22:11