跳至主要內容
ESC

gcloud CLI 速查表:GCP 最常用 100+ 指令完整整理

GCP

「熟練 gcloud CLI,就像拿到一把萬能鑰匙——GCP 的每扇門都能打開。」

不管你是準備 ACE 認證考試,還是平常在管 GCP 資源,gcloud CLI 都是你會最常開的工具。Console 一直點來點去容易出錯,也很難重現;gcloud 指令則可以寫成腳本、放進 CI/CD、丟進版本控制,做起事來省力很多。

這篇速查表整理了 100+ 條最常用的 gcloud 指令,按服務分類、每條都附中文說明,方便你收藏、列印、隨時查。

這篇文章涵蓋:

  • ✅ 安裝與初始設定
  • ✅ 13 大服務分類速查(Compute Engine、Cloud Storage、GKE、Cloud Run 等)
  • ✅ 進階技巧:格式化輸出、篩選、組態切換、批次操作
  • ✅ ACE 考試常考指令整理
  • ✅ 一頁精簡版速查表(最常用 30 條)

一、安裝與初始設定

macOS: brew install --cask google-cloud-sdk Linux / WSL: curl https://sdk.cloud.google.com | bash Windows:Google Cloud SDK 安裝頁面 下載安裝程式。

gcloud init                          # 初始化(登入 + 選專案 + 選區域)
gcloud version                       # 確認目前版本
gcloud components update             # 更新到最新版
gcloud components install kubectl    # 安裝額外元件(kubectl)
gcloud components install beta       # 安裝 beta 指令

二、環境設定與帳號管理

這是用 gcloud 的第一步,先把身份、專案和預設區域都設好。

gcloud auth login                                        # 登入 Google 帳號(開啟瀏覽器驗證)
gcloud auth activate-service-account --key-file=KEY.json # 以服務帳號登入(CI/CD 常用)
gcloud auth list                                         # 列出已驗證的帳號
gcloud auth revoke ACCOUNT_EMAIL                         # 撤銷帳號驗證
gcloud auth print-access-token                           # 取得 access token(API 呼叫用)
gcloud auth application-default login                    # 設定應用程式預設憑證(ADC)
gcloud config set project PROJECT_ID                     # 設定預設專案
gcloud config set compute/region asia-east1              # 設定預設區域
gcloud config set compute/zone asia-east1-b              # 設定預設可用區
gcloud config list                                       # 查看目前所有設定值
gcloud config unset compute/zone                         # 取消特定設定
gcloud config get project                                # 查看目前專案 ID

提示: 養成習慣,每次開新終端先 gcloud config list 確認一下,免得操作到錯的專案。ACE 考試裡也有不少題在考你懂不懂預設專案和區域怎麼設。


三、Compute Engine(虛擬機)

Compute Engine 是 GCP 的 IaaS 核心,也是 ACE 考試很愛考的地方。更多概念可參考 GCP 運算服務完整介紹

# 建立 VM 執行個體
gcloud compute instances create my-vm \
  --zone=asia-east1-b --machine-type=e2-medium \
  --image-family=debian-12 --image-project=debian-cloud --boot-disk-size=50GB
gcloud compute instances list                                # 列出所有執行個體
gcloud compute instances describe my-vm --zone=asia-east1-b  # 查看詳細資訊
gcloud compute instances start my-vm --zone=asia-east1-b     # 啟動已停止的執行個體
gcloud compute instances stop my-vm --zone=asia-east1-b      # 停止執行個體(停止計費 CPU/RAM)
gcloud compute instances delete my-vm --zone=asia-east1-b    # 刪除執行個體
gcloud compute ssh my-vm --zone=asia-east1-b                 # SSH 連線
gcloud compute ssh my-vm --zone=asia-east1-b --command="uptime"  # SSH 執行指令
# 設定標籤(帳單分類用)
gcloud compute instances add-labels my-vm --zone=asia-east1-b --labels=env=prod,team=backend
# 變更機器類型(需先停止 VM)
gcloud compute instances set-machine-type my-vm --zone=asia-east1-b --machine-type=e2-standard-4

磁碟、快照與映像

# 建立持久磁碟
gcloud compute disks create my-disk --zone=asia-east1-b --size=100GB --type=pd-ssd
# 將磁碟掛載到 VM
gcloud compute instances attach-disk my-vm --disk=my-disk --zone=asia-east1-b
# 建立磁碟快照
gcloud compute snapshots create my-snapshot --source-disk=my-disk --source-disk-zone=asia-east1-b
gcloud compute snapshots list                                # 列出所有快照
# 從快照建立新磁碟
gcloud compute disks create restored-disk --source-snapshot=my-snapshot --zone=asia-east1-b
# 從 VM 磁碟建立自訂映像
gcloud compute images create my-image --source-disk=my-vm --source-disk-zone=asia-east1-b
gcloud compute images list --filter="family:debian"          # 列出公開映像系列
gcloud compute images delete my-image                        # 刪除自訂映像

四、Cloud Storage(物件儲存)

注意:以下都用新版 gcloud storage 指令,gsutil 已經被標記為 Legacy,建議全面換成 gcloud storage。更多儲存策略可參考 GCP 儲存服務選型指南

# 建立儲存桶
gcloud storage buckets create gs://my-bucket --location=asia-east1 --default-storage-class=STANDARD
gcloud storage buckets list                              # 列出所有儲存桶
gcloud storage buckets describe gs://my-bucket           # 查看詳細資訊
gcloud storage cp local-file.txt gs://my-bucket/         # 上傳檔案
gcloud storage cp gs://my-bucket/file.txt ./local-dir/   # 下載檔案
gcloud storage cp -r ./my-folder gs://my-bucket/         # 遞迴上傳整個目錄
gcloud storage rsync ./local-dir gs://my-bucket/backup/ --recursive  # 同步(只傳差異)
gcloud storage ls gs://my-bucket/                        # 列出物件
gcloud storage ls -l gs://my-bucket/                     # 列出物件詳細資訊
gcloud storage rm gs://my-bucket/old-file.txt            # 刪除物件
gcloud storage rm gs://my-bucket/old-folder/ --recursive # 遞迴刪除
# 設定生命週期(自動刪除過期物件)
gcloud storage buckets update gs://my-bucket --lifecycle-file=lifecycle.json
# 啟用統一存取控制
gcloud storage buckets update gs://my-bucket --uniform-bucket-level-access
gcloud storage buckets delete gs://my-bucket              # 刪除儲存桶(需先清空)

gsutil 遷移提醒: 舊腳本裡的 gsutil cpgsutil rsync,直接換成 gcloud storage 就行。新版跑起來更快,輸出也更一致。


五、GKE(Google Kubernetes Engine)

ACE 考試會考你建叢集和一些基本操作。更多 GKE 概念可參考 GKE 入門指南

# 建立叢集(Autopilot 模式,推薦)
gcloud container clusters create-auto my-cluster --region=asia-east1
# 建立叢集(Standard 模式)
gcloud container clusters create my-cluster \
  --zone=asia-east1-b --num-nodes=3 --machine-type=e2-standard-4
gcloud container clusters list                               # 列出所有叢集
gcloud container clusters describe my-cluster --zone=asia-east1-b  # 查看詳細資訊
# 取得叢集憑證(配置 kubectl)
gcloud container clusters get-credentials my-cluster --zone=asia-east1-b
gcloud container clusters resize my-cluster --zone=asia-east1-b --num-nodes=5  # 調整節點數
gcloud container clusters upgrade my-cluster --zone=asia-east1-b --master      # 升級版本
gcloud container get-server-config --zone=asia-east1-b       # 列出可用 GKE 版本
gcloud container clusters delete my-cluster --zone=asia-east1-b  # 刪除叢集
# 節點池管理
gcloud container node-pools list --cluster=my-cluster --zone=asia-east1-b
gcloud container node-pools create gpu-pool \
  --cluster=my-cluster --zone=asia-east1-b --machine-type=n1-standard-4 --num-nodes=2

注意: 拿到憑證後就能用 kubectl 操作叢集了。GKE Enterprise(前身是 Anthos)可以做多叢集管理,不過 ACE 考試主要還是考單叢集操作。


六、Cloud Run(無伺服器容器)

部署容器最簡單的方式。更多 Serverless 選型可參考 GCP 無伺服器方案比較

# 從容器映像部署
gcloud run deploy my-service \
  --image=gcr.io/PROJECT_ID/my-image:latest --region=asia-east1 --allow-unauthenticated
# 從原始碼直接部署(自動 build)
gcloud run deploy my-service --source=. --region=asia-east1
gcloud run services list --region=asia-east1                 # 列出所有服務
gcloud run services describe my-service --region=asia-east1  # 查看服務詳細資訊
gcloud run revisions list --service=my-service --region=asia-east1  # 查看修訂版本
# 流量切換到特定修訂版本
gcloud run services update-traffic my-service --region=asia-east1 \
  --to-revisions=my-service-00005-abc=100
# 設定環境變數
gcloud run services update my-service --region=asia-east1 \
  --set-env-vars="DB_HOST=10.0.0.1,APP_ENV=production"
gcloud run services update my-service --region=asia-east1 --max-instances=10  # 最大執行個體數
gcloud run services logs read my-service --region=asia-east1  # 查看日誌
gcloud run services delete my-service --region=asia-east1     # 刪除服務

七、Cloud Functions(無伺服器函式)

雖然 GCP 已經把第二代 Cloud Functions 併進 Cloud Run functions,但 gcloud functions 指令還是能用,而且大家都還在用。

# 部署 HTTP 觸發函式(第二代)
gcloud functions deploy my-function --gen2 --runtime=nodejs20 \
  --trigger-http --allow-unauthenticated --region=asia-east1 --entry-point=helloWorld
# 部署事件觸發函式(Cloud Storage 事件)
gcloud functions deploy process-upload --gen2 --runtime=python312 \
  --trigger-event-filters="type=google.cloud.storage.object.v1.finalized" \
  --trigger-event-filters="bucket=my-bucket" --region=asia-east1
gcloud functions list                                        # 列出所有函式
gcloud functions describe my-function --region=asia-east1    # 查看函式詳細資訊
gcloud functions call my-function --region=asia-east1        # 呼叫函式(測試用)
gcloud functions call my-function --region=asia-east1 --data='{"name":"Bobo"}'  # 傳入資料
gcloud functions logs read my-function --region=asia-east1   # 查看函式日誌
gcloud functions delete my-function --region=asia-east1      # 刪除函式

八、Cloud SQL(關聯式資料庫)

# 建立 MySQL 執行個體
gcloud sql instances create my-sql --database-version=MYSQL_8_0 \
  --tier=db-n1-standard-2 --region=asia-east1
# 建立 PostgreSQL 執行個體
gcloud sql instances create my-pg --database-version=POSTGRES_15 \
  --tier=db-custom-2-8192 --region=asia-east1
gcloud sql instances list                                    # 列出所有執行個體
gcloud sql instances describe my-sql                         # 查看詳細資訊
gcloud sql connect my-sql --user=root                        # 連線到 Cloud SQL
gcloud sql databases create my-database --instance=my-sql    # 建立資料庫
gcloud sql databases list --instance=my-sql                  # 列出資料庫
gcloud sql users create app-user --instance=my-sql --password=SECURE_PASSWORD  # 建立使用者
gcloud sql instances patch my-sql --backup-start-time=02:00  # 設定自動備份
gcloud sql instances restart my-sql                          # 重新啟動
gcloud sql instances delete my-sql                           # 刪除執行個體

九、IAM(身份與存取管理)

IAM 是 GCP 安全性的核心,也是 ACE 考試裡最重要的一塊。更多安全概念可參考 GCP 安全性完整指南

gcloud projects get-iam-policy PROJECT_ID                    # 列出專案 IAM 政策
# 為使用者新增角色
gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:alice@example.com" --role="roles/editor"
# 移除使用者角色
gcloud projects remove-iam-policy-binding PROJECT_ID \
  --member="user:alice@example.com" --role="roles/editor"
gcloud iam roles list                                        # 列出所有預定義角色
gcloud iam roles describe roles/compute.admin                # 查看角色權限
# 建立服務帳號
gcloud iam service-accounts create my-sa --display-name="My Service Account"
gcloud iam service-accounts list                             # 列出所有服務帳號
# 為服務帳號建立金鑰
gcloud iam service-accounts keys create key.json \
  --iam-account=my-sa@PROJECT_ID.iam.gserviceaccount.com
# 為服務帳號授予角色
gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:my-sa@PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/storage.objectViewer"
# 模擬服務帳號身份
gcloud auth print-access-token \
  --impersonate-service-account=my-sa@PROJECT_ID.iam.gserviceaccount.com
# 建立自訂角色
gcloud iam roles create customViewer --project=PROJECT_ID \
  --title="Custom Viewer" --permissions=compute.instances.list,compute.instances.get

ACE 考試重點: 搞懂 Principal(主體)+ Role(角色)+ Resource(資源)三者怎麼綁在一起。盡量用預定義角色,守住最小權限原則。服務帳號金鑰能不用就不用,改走 Workload Identity 或 impersonation。


十、VPC 與防火牆(網路管理)

gcloud compute networks create my-vpc --subnet-mode=custom   # 建立 VPC(自訂子網路模式)
# 建立子網路
gcloud compute networks subnets create my-subnet \
  --network=my-vpc --region=asia-east1 --range=10.0.1.0/24
gcloud compute networks list                                 # 列出所有 VPC
gcloud compute networks subnets list                         # 列出所有子網路
# 建立防火牆規則(允許 SSH)
gcloud compute firewall-rules create allow-ssh \
  --network=my-vpc --allow=tcp:22 --source-ranges=0.0.0.0/0 --target-tags=allow-ssh
# 建立防火牆規則(允許 HTTP/HTTPS)
gcloud compute firewall-rules create allow-web \
  --network=my-vpc --allow=tcp:80,tcp:443 --source-ranges=0.0.0.0/0
gcloud compute firewall-rules list                           # 列出所有防火牆規則
gcloud compute firewall-rules describe allow-ssh             # 查看特定規則
gcloud compute firewall-rules delete allow-ssh               # 刪除防火牆規則
gcloud compute addresses create my-ip --region=asia-east1    # 預留靜態外部 IP
gcloud compute addresses list                                # 列出預留 IP
# 建立 Cloud NAT(讓私有 VM 連外網)
gcloud compute routers create my-router --network=my-vpc --region=asia-east1
gcloud compute routers nats create my-nat --router=my-router --region=asia-east1 \
  --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges

十一、Cloud Build(CI/CD)

更多 CI/CD 實戰可參考 Cloud Build CI/CD 完整指南

gcloud builds submit --tag=gcr.io/PROJECT_ID/my-image:v1    # 提交建置(Dockerfile)
gcloud builds submit --config=cloudbuild.yaml                # 使用設定檔建置
gcloud builds list                                           # 列出建置記錄
gcloud builds describe BUILD_ID                              # 查看建置詳情
gcloud builds log BUILD_ID                                   # 查看建置日誌
gcloud builds triggers list                                  # 列出觸發器
gcloud builds triggers run my-trigger --branch=main          # 手動執行觸發器
# 建立 GitHub 觸發器
gcloud builds triggers create github \
  --repo-name=my-repo --repo-owner=my-org --branch-pattern="^main$" \
  --build-config=cloudbuild.yaml

十二、Pub/Sub(訊息佇列)

更多概念可參考 Pub/Sub 事件驅動架構

gcloud pubsub topics create my-topic                         # 建立主題
gcloud pubsub topics list                                    # 列出所有主題
gcloud pubsub topics publish my-topic --message="Hello!"     # 發布訊息
# 發布訊息並附帶屬性
gcloud pubsub topics publish my-topic --message="Order created" \
  --attribute="type=order,priority=high"
gcloud pubsub subscriptions create my-sub --topic=my-topic   # 建立訂閱
gcloud pubsub subscriptions list                             # 列出所有訂閱
gcloud pubsub subscriptions pull my-sub --limit=10           # 拉取訊息
gcloud pubsub subscriptions pull my-sub --limit=10 --auto-ack  # 拉取並自動確認
gcloud pubsub subscriptions delete my-sub                    # 刪除訂閱
gcloud pubsub topics delete my-topic                         # 刪除主題

十三、監控與日誌

gcloud logging read "resource.type=gce_instance" --limit=20  # 讀取 VM 日誌
# 讀取 Cloud Run 服務日誌
gcloud logging read "resource.type=cloud_run_revision AND \
  resource.labels.service_name=my-service" --limit=50
gcloud logging read "severity >= ERROR" --limit=20           # 讀取錯誤日誌
gcloud logging read "timestamp >= \"2026-03-19T00:00:00Z\"" --limit=100  # 指定時間範圍
# 寫入自訂日誌
gcloud logging write my-custom-log "Test message" --severity=INFO
gcloud logging metrics list                                  # 列出日誌指標
# 建立日誌匯出 Sink
gcloud logging sinks create my-sink storage.googleapis.com/my-log-bucket \
  --log-filter="severity >= WARNING"
gcloud alpha monitoring policies list                        # 列出告警政策
gcloud monitoring uptime list-configs                        # 查看 uptime check

十四、帳單與專案管理

# 建立新專案
gcloud projects create my-new-project --name="My New Project" --organization=ORG_ID
gcloud projects list                                         # 列出所有專案
gcloud projects describe PROJECT_ID                          # 查看專案詳情
gcloud config set project OTHER_PROJECT_ID                   # 切換專案
gcloud projects delete PROJECT_ID                            # 刪除專案(30 天內可復原)
gcloud billing accounts list                                 # 列出帳單帳戶
gcloud billing projects describe PROJECT_ID                  # 查看專案帳單連結
# 連結帳單帳戶
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
gcloud services enable compute.googleapis.com                # 啟用 API
# 批次啟用多個 API
gcloud services enable compute.googleapis.com container.googleapis.com \
  run.googleapis.com cloudfunctions.googleapis.com
gcloud services list --enabled                               # 列出已啟用 API
gcloud services list --available                             # 列出所有可用 API

十五、進階技巧

格式化輸出

gcloud compute instances list --format=json                  # JSON 格式(程式處理用)
gcloud compute instances list --format=yaml                  # YAML 格式
gcloud compute instances list \
  --format="table(name, zone.basename(), machineType.basename(), status)"  # 自訂欄位
gcloud compute instances list --format="value(name)"         # 只輸出值(腳本用)
gcloud compute instances list --format="csv(name, zone, status)"  # CSV 格式

篩選結果

gcloud compute instances list --filter="status=RUNNING"      # 篩選執行中的 VM
gcloud compute instances list --filter="zone:asia-east1"     # 篩選特定區域
gcloud compute instances list --filter="name~prod"           # 名稱包含 prod
gcloud compute instances list --filter="status=RUNNING AND zone:asia-east1"  # 組合條件
gcloud compute instances list --filter="labels.env=production"  # 篩選標籤

組態切換(多環境管理)

gcloud config configurations create dev-config               # 建立命名組態
gcloud config configurations activate dev-config             # 切換到指定組態
gcloud config set project dev-project-id                     # 在組態中設定專案
gcloud config configurations list                            # 列出所有組態
gcloud config configurations delete old-config               # 刪除組態
gcloud compute instances list --configuration=prod-config    # 用特定組態執行(不切換)

實用情境: 同時要顧 dev、staging、prod 三個環境時,開三個 configuration 來快速切換,就不會不小心動到正式環境。

批次操作

# 批次刪除符合條件的 VM
gcloud compute instances list --filter="name~test" --format="value(name, zone)" \
  | while read NAME ZONE; do
      gcloud compute instances delete $NAME --zone=$ZONE --quiet
    done
gcloud compute instances delete my-vm --zone=asia-east1-b --quiet  # --quiet 跳過確認
gcloud compute instances list --project=other-project-id     # --project 操作其他專案

十六、ACE 考試常考 gcloud 指令

ACE 考試會考你實際操作 gcloud CLI 的能力。以下是出現頻率最高的指令,更多考試策略請參考 ACE 認證考試攻略

# ===== 專案與帳號(必考)=====
gcloud config set project PROJECT_ID             # 切換專案
gcloud config set compute/zone ZONE              # 設定預設可用區
gcloud auth activate-service-account             # 服務帳號驗證
gcloud config configurations activate NAME       # 切換組態

# ===== Compute Engine(必考)=====
gcloud compute instances create ...              # 建立 VM(注意各參數)
gcloud compute instances stop/start/delete       # 生命週期管理
gcloud compute ssh VM_NAME                       # SSH 連線
gcloud compute snapshots create ...              # 建立快照(備份)
gcloud compute images create ...                 # 建立自訂映像

# ===== IAM 與安全(必考)=====
gcloud projects add-iam-policy-binding ...       # 授予角色(主體+角色+資源)
gcloud iam service-accounts create ...           # 建立服務帳號
gcloud iam roles describe ROLE                   # 查看角色權限

# ===== GKE(必考)=====
gcloud container clusters create ...             # 建立叢集
gcloud container clusters get-credentials        # 取得 kubectl 憑證
gcloud container clusters resize ...             # 調整節點數

# ===== 無伺服器(必考)=====
gcloud run deploy ...                            # 部署 Cloud Run
gcloud functions deploy ...                      # 部署 Cloud Functions

# ===== 儲存與資料庫(必考)=====
gcloud storage cp / rsync                        # Cloud Storage 操作
gcloud sql instances create ...                  # 建立 Cloud SQL
gcloud sql connect INSTANCE                      # 連線 Cloud SQL

# ===== API 管理(必考)=====
gcloud services enable SERVICE_NAME              # 啟用 API
gcloud services list --enabled                   # 列出已啟用 API

考試技巧: ACE 不會叫你背完整語法,但會考你「這個任務該用哪個指令」。重點是搞懂每個指令拿來做什麼、關鍵參數有哪些。


十七、一頁速查表(精簡版)

收藏這 30 條,覆蓋 80% 的日常操作:

# ===== 帳號與設定 =====
gcloud init                                    # 初始化
gcloud auth login                              # 登入
gcloud config set project PROJECT_ID           # 切換專案
gcloud config set compute/zone ZONE            # 設定預設區域
gcloud config list                             # 查看設定

# ===== Compute Engine =====
gcloud compute instances create NAME ...       # 建立 VM
gcloud compute instances list                  # 列出 VM
gcloud compute instances stop NAME             # 停止 VM
gcloud compute instances delete NAME           # 刪除 VM
gcloud compute ssh NAME                        # SSH 連線

# ===== Cloud Storage =====
gcloud storage cp FILE gs://BUCKET/            # 上傳檔案
gcloud storage cp gs://BUCKET/FILE ./          # 下載檔案
gcloud storage ls gs://BUCKET/                 # 列出物件
gcloud storage buckets create gs://BUCKET      # 建立桶

# ===== GKE =====
gcloud container clusters create NAME ...      # 建立叢集
gcloud container clusters get-credentials NAME # 取得憑證

# ===== Cloud Run =====
gcloud run deploy SERVICE --image=IMAGE        # 部署服務
gcloud run services list                       # 列出服務

# ===== IAM =====
gcloud iam service-accounts create NAME        # 建立服務帳號
gcloud projects add-iam-policy-binding ...     # 授予角色

# ===== 資料庫 =====
gcloud sql instances create NAME ...           # 建立 Cloud SQL
gcloud sql connect INSTANCE                    # 連線資料庫

# ===== 網路 =====
gcloud compute networks create NAME            # 建立 VPC
gcloud compute firewall-rules create NAME ...  # 建立防火牆規則

# ===== 服務管理 =====
gcloud services enable SERVICE_NAME            # 啟用 API
gcloud services list --enabled                 # 列出已啟用 API
gcloud projects list                           # 列出專案

# ===== 實用旗標 =====
--format=json                                  # JSON 輸出
--filter="KEY=VALUE"                           # 篩選結果
--quiet                                        # 跳過確認
--project=PROJECT_ID                           # 指定專案

總結

gcloud CLI 就是每個 GCP 工程師的瑞士刀。有了這份速查表,你可以:

  1. 快速查找:按服務分類,找到你需要的指令
  2. 準備考試:ACE 考試常考指令都已標記
  3. 提升效率:善用 --format--filterconfigurations 提升操作速度
  4. 自動化:把常用指令組合成腳本,放進 CI/CD 管道

建議把這篇加入書籤,哪天忘了指令就回來翻一下。等你對 GCP 越來越上手,這些指令自然會變成肌肉記憶。

下一步學習建議:

留言討論

徽章解鎖!