gcloud

gcloud 480+

gcloud(Google Cloud CLI)、gsutil 与 bq 命令快速参考:身份验证、项目 / IAM、Compute / GKE / BigQuery / Cloud Storage、配置以及 Cloud Build / Deploy,并附带常用参数和实操示例。

48 条命令

帮助

gcloud --version

打印 gcloud、gsutil、bq 及核心库的版本。

gcloud --version
gcloud help

顶层帮助,展示完整的命令分组列表。

gcloud help
gcloud help <cmd>

展示任意 gcloud 命令的参数与示例(路径分隔符为空格)。

gcloud help compute instances create
gcloud topic <topic>

阅读深入的文档:`configurations`、`projections`、`filters`、`offline` 等。

configurations;projections;filters;offline;access-control

gcloud topic filters

身份验证

gcloud init

首次运行向导——登录、选择项目、选择默认 region / zone。

gcloud init
gcloud auth login

授权 gcloud 使用你的用户凭据访问 GCP(浏览器 OAuth 流程)。

--no-launch-browser;--no-activate

gcloud auth login --no-launch-browser
gcloud auth application-default login

设置 Application Default Credentials——供客户端库(Python / Node / Go)使用。

--scopes <scope1,scope2>;--no-launch-browser

gcloud auth application-default login
gcloud auth activate-service-account --key-file <key.json>

使用下载的 JSON 密钥文件激活 service account。

gcloud auth activate-service-account [email protected] --key-file=ci.json
gcloud auth list

列出所有已认证的账户。

--format=yaml;--filter

gcloud auth list
gcloud auth revoke

撤销一个或所有账户的凭据。

<account>;--all

gcloud auth revoke --all

项目

gcloud config get-value project

打印当前激活的项目。

gcloud config get-value project
gcloud config set project <id>

设置激活的项目。

gcloud config set project my-gcp-project
gcloud projects list

列出你有权限访问的所有项目。

--format='table(projectId,name,projectNumber)';--limit

gcloud projects list --format='table(projectId,name)'

配置

gcloud config configurations list

列出所有保存的配置(具名 profile)。

--format=yaml

gcloud config configurations list
gcloud config configurations create <name>

创建一个新的具名配置。

--no-activate

gcloud config configurations create dev --no-activate
gcloud config configurations activate <name>

切换到一个已存在的配置。

gcloud config configurations activate prod
CLOUDSDK_ACTIVE_CONFIG_NAME=<name> gcloud ...

在不修改持久配置的情况下使用某个配置(CI / 脚本)。

CLOUDSDK_ACTIVE_CONFIG_NAME=prod gcloud compute instances list
gcloud config set compute/region <region>

按属性设置默认值(region / zone / project / account)。

compute/region;compute/zone;container/cluster;compute/region us-central1

gcloud config set compute/region us-central1

输出

gcloud <cmd> --format=<fmt>

选择输出格式:`json`、`yaml`、`table`、`csv`、`value`、`default`。

json;yaml;table;csv;value;default;get(<expr>):label

gcloud compute instances list --format='table(name,zone.basename(),machineType.basename())'
gcloud <cmd> --filter='<expr>'

服务端过滤——表达式语法见 `gcloud topic filters`。

name=foo;zone:us-*;status:RUNNING

gcloud compute instances list --filter='zone:us-central1-a AND labels.env=prod'
gcloud <cmd> --limit <N>

限制结果数(其他情况下服务端分页无上限)。

gcloud compute instances list --limit=20

IAM

gcloud iam service-accounts list

列出当前项目中的所有 service account。

--project;--format=json;--limit

gcloud iam service-accounts list
gcloud iam service-accounts keys create <file.json> --iam-account <sa>

为 service account 创建一个 JSON key——供不支持 ADC 的工具使用。

--iam-account <sa>;--key-file-type json

gcloud iam service-accounts keys create ci.json --iam-account [email protected]
gcloud projects add-iam-policy-binding <project> --member='user:<email>' --role='roles/<role>'

在项目级授予某个 member 一个角色。

--member=user:foo@bar / serviceAccount:foo / group:bar / domain:bar;--role=roles/owner

gcloud projects add-iam-policy-binding my-proj --member='user:[email protected]' --role='roles/viewer'

Compute Engine

gcloud compute instances list

列出所有 VM 及其 zone、机器规格、状态。

--project;--filter;--format=table;--limit

gcloud compute instances list --format='table(name,zone,machineType,status)'
gcloud compute instances create <name> --zone <z> --machine-type <t>

使用默认镜像(Debian 12)创建一个 VM。

--zone;--machine-type;--image-family;--image-project;--preemptible;--tags;--labels;--metadata;--service-account;--scopes

gcloud compute instances create vm-dev --zone=us-central1-a --machine-type=e2-medium --image-family=debian-12
gcloud compute ssh <vm> --zone <z>

打开到 VM 的 SSH 会话(自动生成 / 保存密钥到 `~/.ssh/google_compute_engine`)。

--zone;--ssh-key-file;--command <cmd>;--tunnel-through-iap;--internal-ip

gcloud compute ssh vm-dev --zone=us-central1-a --command 'docker ps'
gcloud compute instances delete <vm> --zone <z>

删除一台 VM(可选是否同时删除磁盘)。

--zone;--delete-disks=all / data / boot

gcloud compute instances delete vm-dev --zone=us-central1-a --delete-disks=all
gcloud compute disks list

列出所有持久磁盘。

--filter='zone:us-*';--format=table

gcloud compute disks list --format='table(name,sizeGb,zone,status)'
gcloud compute snapshots create <name> --source-disk <disk>

为持久磁盘创建快照,用于备份或克隆。

--source-disk <name>;--source-disk-zone;--description

gcloud compute snapshots create snap-2026-08-25 --source-disk=data-disk --source-disk-zone=us-central1-a

GKE

gcloud container clusters list

列出所有 GKE 集群。

--region;--format=table;--limit

gcloud container clusters list --format='table(name,zone,masterVersion,status)'
gcloud container clusters get-credentials <name> --region <r>

把集群的 kubeconfig 合并到 `~/.kube/config` 并切换 context。

--region;--zone;--project;--internal-ip

gcloud container clusters get-credentials my-cluster --region=us-central1
gcloud container clusters create <name> --num-nodes=1

创建一个 Autopilot 或 Standard GKE 集群。

--num-nodes;--machine-type;--region;--enable-autoscaling;--enable-autorepair;--cluster-version;--release-channel rapid|regular|stable

gcloud container clusters create my-cluster --region=us-central1 --num-nodes=3 --enable-autoscaling --min-nodes=1 --max-nodes=5

Cloud Storage

gsutil ls

列出桶 / 对象(别名:`gcloud storage ls`)。

-r;-l;-h;gs://;-d(只列目录)

gsutil ls gs://my-bucket/data/
gsutil cp <local> gs://<bucket>/<key>

上传或复制对象。`-r` 表示递归复制目录。

-r;-m 并行;-c 保留 cache-control;-p 保留 ACL;-n no-clobber;-z <fmt> 上传时压缩

gsutil cp -r ./dist gs://my-bucket/app/
gsutil rsync -r <src> <dst>

双向目录同步(并行、快速)。源 / 目标可以是本地或 `gs://`。

-r;-d 删除多余项;-c checksum 比较;-n 演练;-x 排除

gsutil rsync -r -d ./build gs://my-bucket/build
gcloud storage buckets create gs://<name> --location <loc>

创建一个 Cloud Storage 桶,可指定 location / 类。

--location;--default-storage-class;--uniform-bucket-level-access;--public-access-prevention

gcloud storage buckets create gs://my-bucket --location=us-central1 --uniform-bucket-level-access

BigQuery

bq query --use_legacy_sql=false 'SELECT ...'

对 BigQuery 运行一条即席 SQL 查询。

--use_legacy_sql=false;--max_rows;--destination_table;--parameter;--format=json

bq query --use_legacy_sql=false 'SELECT COUNT(*) FROM `bigquery-public-data.samples.shakespeare`'
bq show --format=pretty <project>:<dataset>

显示某个 project / dataset / table / job 的元数据。

--format=pretty;--schema;--view

bq show my-proj:my_dataset
bq load --source_format=CSV --autodetect <dataset>.<table> <file>

将本地 CSV/JSON/Parquet 文件批量加载到 BigQuery 表。

--source_format=CSV|JSON|PARQUET|AVRO|NEWLINE_DELIMITED_JSON;--autodetect;--replace;--skip_leading_rows=1

bq load --source_format=CSV --autodetect --skip_leading_rows=1 my_dataset.users users.csv

Cloud Build

gcloud builds submit --tag gcr.io/<proj>/<img>

用默认 Cloud Build 配置从当前目录构建一个容器。

--tag;--config <file>;--machine-type;--timeout;--gcs-source-staging-dir;--no-source-image-upload

gcloud builds submit --tag gcr.io/my-proj/app:v1 .

Cloud Deploy

gcloud app deploy <yaml>

部署到 App Engine 标准 / 弹性环境。

--image-url;--version;--promote;--stop-previous-version

gcloud app deploy app.yaml --promote

Pub/Sub

gcloud pubsub topics publish <topic> --message '<msg>'

发布单条消息——适合临时测试。

--message;--attributes;--ordering-key

gcloud pubsub topics publish my-topic --message 'hello' --attributes=k=v
gcloud pubsub subscriptions pull <sub> --limit <N> --auto-ack

从一个订阅拉取(并自动 ack)N 条消息——适合做健全性检查。

--limit;--auto-ack;--format=json

gcloud pubsub subscriptions pull my-sub --limit=5 --auto-ack

部署 / 回滚

gcloud components update

把 gcloud 自身以及所有已安装组件更新到最新版本。

gcloud components update
gcloud components install <name>

安装一个可选 gcloud 组件(kubectl、bq、gsutil、app-engine-python 等)。

<name>

gcloud components install kubectl

诊断

gcloud info

打印 gcloud 环境:python 版本、安装位置、激活的配置。

--run-diagnostics;--log-level=debug

gcloud info
gcloud feedback

打开浏览器进入公共 gcloud issue tracker,环境信息会自动预填。

--log-level=debug

gcloud feedback

相关命令速查

关于 Google Cloud CLI

Google Cloud CLI(gcloud)是 Google 官方推出的用于管理 Google Cloud Platform(GCP)服务的命令行工具。它在单个安装包中捆绑了三个二进制:`gcloud`(资源管理、IAM、App Engine、Cloud SQL、GKE、Compute Engine),`gsutil`(Cloud Storage,原本是独立的 `gsutil` CLI),以及 `bq`(BigQuery)。当前稳定版本线是 gcloud 480+(2025 年 8 月前后)。gcloud 遵循 资源-分组 模式:`gcloud <group> <resource> <verb>`——例如 `gcloud compute instances list`、`gcloud iam service-accounts keys create`。身份验证支持交互式 `gcloud auth login`、service account 密钥,以及通过 `gcloud auth application-default login` 实现的 Application Default Credentials(ADC)——后者是 Terraform、Python、Node.js SDK 的规范凭据来源。gcloud 采用 Apache 2.0 协议,除显式的 `gcloud app deploy`、`gcloud builds submit` 等命令外,不会把你的代码上传到任何地方。

速查页版本 1.0.0