部署Genkit Cloud Function后API Key无效问题求助
排查API Key无效问题的解决方案
1. 正确引用Secret参数
你代码里仅用defineSecret("GOOGLE_GENAI_API_KEY")定义了密钥,但未将其传入googleAI插件配置。需先将定义的secret赋值给变量,再传递给插件:
import { defineSecret } from "firebase-functions/params"; const GOOGLE_GENAI_API_KEY = defineSecret("GOOGLE_GENAI_API_KEY"); configureGenkit({ plugins: [ firebase(), googleAI({ apiVersion: "v1beta", apiKey: GOOGLE_GENAI_API_KEY // 传入密钥参数 }) ], logLevel: "debug", enableTracingAndMetrics: true, });
2. 部署时关联Secret到Cloud Function
仅在本地.env或Secret Manager存储密钥不够,需部署时明确绑定到目标函数:
- 使用Firebase CLI部署,添加参数指定密钥:
替换括号内的实际项目ID和Secret名称。firebase deploy --only functions:identifyItemFromUrl --param GOOGLE_GENAI_API_KEY=projects/[你的GCP项目ID]/secrets/[你的Secret名称]/versions/latest - 或在GCP控制台操作:
- 进入Cloud Functions页面,找到
identifyItemFromUrl函数 - 点击"编辑",进入"运行时、构建和连接设置"
- 在"运行时变量"区域,添加
GOOGLE_GENAI_API_KEY,值选择Secret Manager中的对应密钥
- 进入Cloud Functions页面,找到
3. 验证API Key本身有效性
- 确认API Key是在Google AI Studio生成,且已启用Generative Language API:
- 进入Google Cloud控制台API库,搜索"Generative Language API"
- 确保API已启用,且API Key未被限制IP或使用范围
- 用curl直接测试API Key:
返回正常内容则API Key有效;仍报错则检查Key是否正确,或是否有配额限制。curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent?key=你的API Key" \ -H "Content-Type: application/json" \ -d '{"contents":[{"parts":[{"text":"Hello"}]}]}'
4. 本地测试的.env配置(仅本地模拟器用)
若用firebase emulators:start本地测试,需在functions文件夹的.env文件中正确配置:
GOOGLE_GENAI_API_KEY=你的实际API Key
同时确保firebase-functions和firebase-admin为最新版本,避免兼容问题。
内容的提问来源于stack exchange,提问作者Code on the Rocks
相关产品推荐
相关产品推荐

