Cloud Function调用Vertex AI生成式Prompt授权失败求助
解决Cloud Function调用Vertex AI的授权问题
你的核心问题在于Cloud Function环境下不能直接加载本地服务账号文件,同时代码存在库导入冲突,以下是具体修复方案:
问题分析
- Cloud Function运行时会自动提供默认应用凭据,无需手动读取
service-account-file.json——本地加载文件的方式在部署后会找不到文件路径,直接导致授权失败。 - 代码中同时导入
google.auth.transport.requests和requests并重命名为req,容易引发命名混淆,干扰请求逻辑正常执行。
修复后的代码
import os from google.auth.transport.requests import Request from google.oauth2 import id_token import requests as http_requests # 重命名避免与谷歌auth库的requests冲突 def vertex_ai_request(request): # 定义常量 API_ENDPOINT = "us-central1-aiplatform.googleapis.com" PROJECT_ID = "XXXX" MODEL_ID = "text-bison@001" URL = f"https://{API_ENDPOINT}/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/{MODEL_ID}:predict" # 利用Cloud Function默认凭据获取身份令牌 credentials = id_token.fetch_id_token(Request(), URL) # 请求头配置 headers = { "Authorization": f"Bearer {credentials}", "Content-Type": "application/json" } # 请求体内容 payload = { "instances": [ { "content": "Your content here ..." } ], "parameters": { "candidateCount": 1, "maxOutputTokens": 317, "temperature": 0.2, "topP": 0.8, "topK": 40 } } # 发送POST请求 response = http_requests.post(URL, headers=headers, json=payload) print(response.json()) return 'Request completed', 200
关键配置步骤
- 权限配置:给Cloud Function使用的默认服务账号(格式为
[你的项目ID]@appspot.gserviceaccount.com)添加Vertex AI Predictor角色:- 进入Google Cloud控制台的IAM页面
- 找到对应服务账号,点击编辑按钮,添加
Vertex AI > Vertex AI Predictor角色
- 部署注意事项:部署Cloud Function时无需上传服务账号JSON文件,确保运行环境的服务账号已配置好上述权限即可。
额外优化建议
如果想简化调用逻辑,可以直接使用Vertex AI Python SDK,无需手动构造HTTP请求:
from google.cloud import aiplatform def vertex_ai_request(request): aiplatform.init(project="XXXX", location="us-central1") model = aiplatform.Model("text-bison@001") response = model.predict( instances=[{"content": "Your content here ..."}], parameters={ "candidateCount": 1, "maxOutputTokens": 317, "temperature": 0.2, "topP": 0.8, "topK": 40 } ) print(response.predictions) return 'Request completed', 200
使用SDK时同样依赖Cloud Function的默认凭据,只需确保服务账号拥有对应权限即可。
内容的提问来源于stack exchange,提问作者Sandy
相关产品推荐
相关产品推荐

