翻译页面
本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。
如何让 StackQL 通过 Google Cloud 的身份验证
StackQL 使用服务账号密钥向 Google Cloud 进行身份验证,密钥以 JSON 内容的形式通过 GOOGLE_CREDENTIALS 环境变量提供。
步骤
- 创建一个服务账号,并为其授予目标项目上的角色(对于只读查询,
roles/viewer即可满足需要),然后创建并下载 JSON 密钥:
gcloud iam service-accounts keys create stackql-key.json \
--iam-account=stackql-sa@my-project.iam.gserviceaccount.com
- 导出密钥内容:
export GOOGLE_CREDENTIALS=$(cat ./stackql-key.json)
另一种方式是使用 --auth 标志按路径传入密钥,这适用于服务器和 MCP 部署:
stackql shell \
--auth='{"google": {"type": "service_account", "credentialsfilepath": "/path/to/stackql-key.json"}}'
- 拉取 Google Provider(仅首次使用时需要):
REGISTRY PULL google;
- 通过查询进行验证:
SELECT name, status, machineType
FROM google.compute.instances
WHERE project = 'my-project';
此查询使用 aggregated_list 访问方法,该方法只需要 project,并返回所有可用区中的实例。可用区级的 list 方法同时需要 project 和 zone;SHOW METHODS IN google.compute.instances 会显示每个方法的必需参数。
凭据的适用范围
同一个变量(或 --auth 对象)在 stackql shell、stackql exec、stackql srv 和 stackql mcp 中均适用。对于 Claude Desktop 及类似的 MCP 客户端,在服务器配置的 env 块中设置 GOOGLE_CREDENTIALS。在 CI 中,应从平台的机密存储获取密钥,切勿将其提交到仓库。
相关概念
- 如何让 StackQL 通过 AWS 的身份验证:AWS 的对应做法
- 如何让 StackQL 通过 Azure 的身份验证:Azure 的对应做法
- 如何将 StackQL 与 AI 智能体配合使用:MCP 部署中的凭据
- 什么是 SQL for APIs?:为什么必需参数会出现在 WHERE 子句中
- 常见 StackQL 错误:包括身份验证失败