gcloud

gcloud 480+

gcloud(Google Cloud CLI)、gsutil、bq 命令快速參考:驗證、project/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 key 檔啟用 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=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>

為持久磁碟建立 snapshot 以備份或複製。

--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

列出 bucket/物件(別名:`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 不覆寫;-z <fmt> 上傳時壓縮

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

雙向目錄同步(平行、快速)。來源/目的地可以是本地或 `gs://`。

-r;-d 刪除多餘項目;-c 以校驗碼比對;-n 試跑;-x 排除

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

建立新的 Cloud Storage bucket,可指定 location/class。

--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>

顯示專案/資料集/資料表/工作的 metadata。

--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 standard/flex。

--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

從 subscription 拉取(並自動 ack)N 條訊息——健全性檢查很實用。

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

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

部署/回滾

gcloud components update

把 gcloud 本身與所有已安裝 component 更新到最新版本。

gcloud components update
gcloud components install <name>

安裝可選的 gcloud component(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 key,以及透過 `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