name: Google Cloud 命令行接口 description: Google Cloud 命令行接口操作和资源管理 version: 1.0.0 model: sonnet invoked_by: both user_invocable: true tools: [Bash, Read] best_practices:
- 从不暴露服务账户密钥
- 资源删除需要确认
- 操作前验证项目 error_handling: graceful streaming: supported verified: false lastVerifiedAt: 2026-02-19T05:29:09.098Z
Google Cloud CLI 技能
安装
该技能调用 gcloud 命令行接口。安装和初始化:
- Linux/macOS:
curl https://sdk.cloud.google.com | bash然后重启 shell 并运行gcloud init - Windows: 下载 Google Cloud SDK 安装程序 或使用 PowerShell 下载和运行
验证: gcloud --version. 配置: gcloud init
速查表与最佳实践
配置: gcloud config set project <id>; gcloud config list; gcloud config configurations create/activate <name> — 切换项目。
认证: gcloud auth login; 使用 --impersonate-service-account 用于服务账户; --access-token-file 用于 CI。
技巧: 使用 --format="table(name,zone,status)" 或 --format=json + jq 来简化输出。使用 --flags-file=file.yaml 用于长或重复的标志。使用命名配置用于开发/预发/生产环境。定期运行 gcloud components update。
认证与培训
免费: Google Cloud 学习 和 Google Skills — 创新者计划 (每月35学分). 证书: Cloud Digital Leader, Cloud Engineer (助理), Cloud Architect/DevOps (专业). 技能数据: 配置, 认证, 计算/存储/IAM; 无暴露的服务账户密钥。
钩子与工作流
建议的钩子: 预部署: gcloud config get-value project. 当 devops 被路由用于 GCP 任务时使用 (上下文: gcp_project)。
工作流: 与 devops 一起使用 (上下文: gcp_project). 流程: 检测 GCP → 加载 gcloud-cli → 通过技能脚本运行 CLI。
概述
Google Cloud Platform 命令行接口操作。90%+ 上下文节省。
要求
- 已安装 gcloud 命令行接口
- GOOGLE_PROJECT_ID 环境变量
- 通过 gcloud auth 认证
工具 (渐进式披露)
计算
| 工具 | 描述 | 确认 |
|---|---|---|
| instances-list | 列出虚拟机实例 | 否 |
| instances-create | 创建虚拟机 | 是 |
| instances-delete | 删除虚拟机 | 必需 |
存储
| 工具 | 描述 | 确认 |
|---|---|---|
| storage-ls | 列出桶/对象 | 否 |
| storage-cp | 复制对象 | 是 |
| storage-rm | 删除对象 | 是 |
IAM
| 工具 | 描述 |
|---|---|
| iam-list | 列出 IAM 策略 |
| service-accounts | 列出服务账户 |
日志
| 工具 | 描述 |
|---|---|
| logs-read | 读取日志 |
| logs-tail | 实时跟踪日志 |
阻塞
| 工具 | 状态 |
|---|---|
| projects delete | 阻塞 |
| iam-policy delete | 阻塞 |
代理集成
- devops (主要): 云操作
- gcp-cloud-agent (主要): GCP 特定
- cloud-integrator (次要): 多云
安全
⚠️ 从不暴露服务账户密钥 ⚠️ 资源删除需要确认
内存协议 (强制)
开始前:
阅读 .claude/context/memory/learnings.md
完成后:
- 新模式 ->
.claude/context/memory/learnings.md - 发现问题 ->
.claude/context/memory/issues.md - 做出决策 ->
.claude/context/memory/decisions.md
假设中断: 如果不在内存中,则未发生。