Google Cloud Platform 基础:项目与命令行
bash curl https://sdk.cloud.google.com | bash
安装完成后重启终端,或执行 `exec -l $SHELL` 使路径生效。然后运行初始化命令:
```bash
gcloud init
初始化与认证
gcloud init 会引导你完成以下步骤:
- 登录 Google 账号并进行 OAuth 认证。
- 选择一个默认项目(可跳过,后续指定)。
- 配置默认的 Compute Engine 区域和可用区(例如
us-central1-a),这样后续创建资源时就不必每次输入。
你随时可以用以下命令重新认证或更改配置:
gcloud auth login # 重新登录
gcloud config set project PROJECT_ID # 切换默认项目
gcloud config list # 查看所有配置
基本命令:项目操作
日常使用中,项目相关的命令非常高频,掌握它们可以快速在生产环境中定位问题。
列出你有权限访问的所有项目:
gcloud projects list
查看当前默认项目:
gcloud config get-value project
创建新项目:
gcloud projects create PROJECT_ID --name="显示名称"
注意:只有拥有 resourcemanager.projects.create 权限的账号才能创建项目,且需要关联结算账号。如果未通过命令行关联,可在 Cloud Console 中完成。
删除项目:
gcloud projects delete PROJECT_ID
删除操作会先标记项目为删除申请状态,相关资源会被逐步关闭,通常有 30 天的恢复期。
获取项目完整信息:
gcloud projects describe PROJECT_ID
输出会展示项目编号、生命周期状态、父组织等细节。
在命令中临时指定项目:
大多数 gcloud 命令都接受 --project 参数,例如:
gcloud compute instances list --project=another-project
这样即使不切换默认项目,也能跨项目操作资源。
实战演练:从创建到管理
让我们通过一个完整流程串联所有知识点。假设你想为个人博客搭建开发环境。
1. 创建项目
gcloud projects create blog-dev-2025 --name="Blog开发环境"
如果账号下已有结算账户,系统会提示关联;若无,可稍后前往控制台绑定。否则项目内的非免费资源无法使用。
2. 设为默认项目
gcloud config set project blog-dev-2025
3. 启用必要的 API
应用需要 Cloud Run 和 Cloud SQL,提前启用服务:
gcloud services enable run.googleapis.com sqladmin.googleapis.com
4. 创建服务账号供 CI/CD 使用
gcloud iam service-accounts create blog-deployer \
--display-name="博客部署账号"
5. 授予权限
最小化权限原则,只给部署所需的角色:
gcloud projects add-iam-policy-binding blog-dev-2025 \
--member="serviceAccount:blog-deployer@blog-dev-2025.iam.gserviceaccount.com" \
--role="roles/run.admin"
6. 查看项目资源汇总
当不确定名下有哪些虚拟机或存储桶时,可通过 Cloud Asset Inventory 或直接按服务列出。例如查看所有 Compute Engine 实例:
gcloud compute instances list
如果返回空,说明尚未创建任何实例,符合预期。
最佳实践与权限管理
1. 使用组织节点归纳项目
如果你通过 Google Workspace 或 Cloud Identity 管理公司账户,可以将项目放入文件夹和组织的层级结构中。这样可以在组织层面统一设置约束策略,管控所有项目。
2. 善用 IAM 与最小权限
永远不要直接给个人账户过大的角色。推荐使用“预定义角色”赋予特定服务的权限,比如 roles/viewer(只读)、roles/editor(读写)或自定义角色。项目级别的 IAM 绑定命令已在上节演示。
3. 开启结算预警
在结算账户设置中创建预算和提醒,避免意外费用。例如当月费用超过 $50 时发送邮件。这与项目创建是独立步骤,但对实际使用至关重要。
4. 标记资源
为资源添加标签(Labels),方便在账单中细分。例如添加 environment:dev 标签,就能在费用报告中按环境筛选。创建虚拟机时即可附加:
gcloud compute instances create my-vm \
--labels=env=dev,team=frontend