gcloud CLI 速查表:照工作任務找指令
同一個設定要重做幾次時,gcloud 指令比重新點一遍 Console 容易保存和檢查;遇到問題,也能回頭看當時下了什麼指令。不過指令可重現,不代表它一定會用在對的專案或區域。
這份速查表按工作任務整理指令,包含帳號與專案、運算、儲存、網路及 IAM。查到指令後,先核對目前的帳號、專案和位置,再用 --help 確認所用版本的旗標。

與其死背一百條指令,不如記住同一副骨架: gcloud → 服務群組 → 資源 → 動作 → flags。真正容易出錯的是上方的登入身分與 active project 情境;下方則表示輸出還能接 filter、format 或腳本,讓同一套文法從手動操作延伸到自動化。
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph CONTEXT[1|固定操作情境]
direction TB
A[讀回 account 與 project] --> B[確認 region/zone]
B --> C[先用 list/describe 盤點]
C --> D[用 --help 確認參數]
end
subgraph EXECUTE[2|依風險執行]
direction TB
E{會改動或刪除資源?}
E -- 否 --> F[執行唯讀查詢]
E -- 是 --> G[確認備份、相依與回復方式]
G --> H[加上明確 project<br/>與 location]
H --> I[執行變更]
end
subgraph VERIFY[3|讀回結果]
direction TB
K[重新 list/describe] --> L{結果符合預期?}
L -- 是 --> J[保存結構化輸出]
L -- 否 --> M[停止後續批次並回復]
end
D --> E
F --> J
I --> K
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class E,L decision
class G,M risk
class J good 一、安裝與初始設定
macOS: brew install --cask google-cloud-sdk
Linux / WSL: curl https://sdk.cloud.google.com | bash(自己機器上練手很方便;正式環境建議改用套件管理器安裝,之後更新比較好管)
Windows: 從 Google Cloud CLI 安裝頁面 下載安裝程式。
gcloud init # 初始化(登入 + 選專案 + 選區域)
gcloud version # 確認目前版本
gcloud components list # 查看元件(使用內建 component manager 的安裝方式)
gcloud components update # 更新元件(APT/yum 安裝時改由套件管理器更新)
gcloud components install kubectl # 安裝 kubectl 元件(若安裝方式允許)
安裝方式會改變更新方法: 使用 Google 提供的 archive/互動式 installer 時,可用
gcloud components;透過 APT 或 yum 安裝時,component manager 會停用,必須用相同套件管理器更新。不要把components update寫成所有主機都能跑的維護腳本。
二、環境設定與帳號管理
這是用 gcloud 的第一步,先把身份、專案和預設區域都設好。
gcloud auth login # 登入 Google 帳號(給 gcloud CLI 使用)
gcloud auth list # 列出已驗證的帳號
gcloud auth revoke ACCOUNT_EMAIL # 撤銷帳號驗證
gcloud auth print-access-token # 取得 access token(API 呼叫用)
gcloud auth application-default login # 本機程式/client library 使用的 ADC
gcloud config set auth/impersonate_service_account SA_EMAIL # 以短效 token 模擬服務帳號
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 auth login 的憑證供 gcloud CLI 本身使用;gcloud auth application-default login 建立的 ADC 則供本機程式與 client library 使用,兩者不要當成同一份設定。Google Cloud 上的 workload 優先 attached service account;外部 CI/CD 優先 Workload Identity Federation。只有舊系統無法使用短效憑證時,才考慮 activate-service-account --key-file,並限制金鑰的保存位置與生命週期。
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
A[誰需要取得憑證?] --> B{互動式人員操作?}
B -- 是 --> C[gcloud auth login]
C --> D{本機程式也要呼叫<br/>API?}
D -- 是 --> E[application-default<br/>login<br/>或 service account<br/>impersonation]
D -- 否 --> F[gcloud CLI<br/>credential]
B -- 否 --> G{workload 在哪裡?}
G -- Google Cloud --> H[Attached<br/>service account<br/>短效 ADC]
G -- 外部 CI/地端/他雲 --> I[Workload Identity<br/>Federation]
I --> J{舊系統無法聯邦?}
J -- 否 --> K[短效 token,<br/>不保存 key]
J -- 是 --> L[例外審核後使用<br/>SA key<br/>限制、輪替與撤銷]
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class B,D,G,J decision
class H,I,K good
class L risk 操作習慣: 每次開新終端先用
gcloud auth list與gcloud config list確認身分和專案;production 指令再明確加上--project與 location,避免只依賴隱藏的 active configuration。
三、Compute Engine(虛擬機)
開 VM、停 VM、做快照——這幾招幾乎天天用;ACE 考試指南 Section 3.1 也列了檢視執行中的執行個體與使用快照、映像檔。更多概念可參考 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
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph PREP[1|保存變更前狀態]
direction TB
A[describe VM 與磁碟] --> B{影響資料或開機?}
B -- 是 --> C[建立 snapshot<br/>記錄 image 與設定]
B -- 否 --> D[記錄目前設定]
end
subgraph CHANGE[2|執行變更]
direction TB
E{需要停止 VM?}
E -- 是 --> F[確認維護窗口後 stop]
F --> H[變更 machine type/磁碟]
H --> I[start VM]
E -- 否 --> G[執行可線上變更]
end
subgraph CHECK[3|驗證與回復]
direction TB
J[驗證 OS、應用與監控] --> K{健康檢查通過?}
K -- 是 --> L[保留變更紀錄]
K -- 否 --> M[回復設定或從<br/>snapshot 還原]
end
C --> E
D --> E
G --> J
I --> J
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class B,E,K decision
class C,M risk
class L good 磁碟、快照與映像
# 建立持久磁碟
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
# 從磁碟建立自訂映像(不要假設 boot disk 一定與 VM 同名)
gcloud compute images create my-image --source-disk=BOOT_DISK --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 # 刪除儲存桶(需先清空)
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
A[確認來源與目的 URI] --> B{一次性複製?}
B -- 是 --> C{單檔還是目錄?}
C -- 單檔 --> D[gcloud storage cp]
C -- 目錄 --> E[cp --recursive]
B -- 否,要同步 --> F[gcloud storage rsync]
F --> G{要刪除目的端多餘物件?}
G -- 否 --> H[先同步新增與變更]
G -- 是 --> I[先用測試 prefix<br/>核對刪除範圍]
D --> J[列出目的端並校驗]
E --> J
H --> J
I --> K[確認後才啟用刪除選項]
K --> J
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class B,C,G decision
class I,K risk
class J good gsutil 遷移提醒: 新腳本優先用
gcloud storage。舊腳本不能只做字串替換,因為部分旗標、平行處理、checksum 與 rsync 行為不同;先對照官方遷移表並用非正式 bucket 驗證。
五、GKE(Google Kubernetes Engine)
ACE 考試指南列了部署 GKE 叢集(Section 2.1)與管理 node pool 等日常操作(Section 3.1)。更多 GKE 概念可參考 GKE 入門指南。
# 建立叢集(Autopilot;多數一般 workload 可先評估)
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=n2-standard-4 --num-nodes=2
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
A[確認 project 與 location] --> B{需要建立新叢集?}
B -- 是 --> C{需要直接控制 node pool?}
C -- 否 --> D[create-auto<br/>Autopilot]
C -- 是 --> E[create<br/>Standard]
B -- 否 --> F[clusters list/describe]
D --> G[get-credentials]
E --> G
F --> G
G --> H[kubectl config<br/>current-context]
H --> I[確認 namespace 與 RBAC]
I --> J{目標正確?}
J -- 否 --> K[切換 context/namespace]
K --> H
J -- 是 --> L[kubectl diff/apply]
L --> M[rollout status 與事件驗證]
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class B,C,J decision
class K risk
class M good 注意: 拿到憑證後就能用
kubectl操作叢集了。多叢集管理用 GKE 的 fleet 管理功能;這組功能先後叫過 Anthos 和 GKE Enterprise,官方在 2025-09-02 宣布併入標準 GKE。現行 ACE 考綱列的 GKE 項目是部署叢集、管理 node pool 與 Kubernetes 資源,沒有列多叢集管理。
六、Cloud Run(無伺服器容器)
部署容器最簡單的方式。更多 Serverless 選型可參考 GCP 無伺服器方案比較。
# 從容器映像部署
gcloud run deploy my-service \
--image=asia-east1-docker.pkg.dev/PROJECT_ID/apps/my-image:COMMIT_SHA \
--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 # 刪除服務
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph BUILD[1|建立不可變版本]
direction TB
A[source 或 immutable image tag] --> B[gcloud run deploy]
B --> C[產生新 revision]
end
subgraph CANARY[2|少量流量驗證]
direction TB
D[以 tag/少量流量測試] --> E[檢查 logs、latency、5xx]
E --> F{SLO 與功能通過?}
end
subgraph PROMOTE[3|晉級或回滾]
direction TB
I[逐步提高流量] --> J{完整流量仍健康?}
J -- 否 --> G[流量切回健康 revision]
J -- 是 --> K[完成發布並保留回滾點]
G --> H[修正後從新 revision<br/>重新進入發布流程]
end
C --> D
F -- 是 --> I
F -- 否 --> G
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class F,J decision
class G risk
class K good 映像路徑提醒: Container Registry 已停止寫入。新部署先在 Artifact Registry 建立 repository,使用
REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE:TAG;舊的gcr.ioURL 只有在已遷移並由 Artifact Registry 承載時才可繼續使用。正式環境避免latest,用 commit SHA 或 digest 才能追溯與回滾。
七、Cloud Run functions(無伺服器函式)
新函式可直接透過 Cloud Run Admin API 建立:gcloud run deploy 加上 --function,平台會用 buildpacks 與 Cloud Build 從原始碼建置,並把產物放進 Artifact Registry。事件來源則另外建立 Eventarc trigger,讓「部署執行單元」與「指定事件路由」成為兩個可分別驗證的步驟。
# 部署公開 HTTP function;正式 API 應依需求保留驗證
gcloud run deploy my-function --source=. --function=helloWorld \
--base-image=nodejs24 --region=asia-east1 --allow-unauthenticated
gcloud run services describe my-function --region=asia-east1 # 查看函式服務
gcloud run services logs read my-function --region=asia-east1 # 查看日誌
# 為已部署的 function 建立 Cloud Storage finalized 事件觸發器
gcloud eventarc triggers create process-upload-trigger \
--location=asia-east1 \
--destination-run-service=my-function --destination-run-region=asia-east1 \
--event-filters="type=google.cloud.storage.object.v1.finalized" \
--event-filters="bucket=my-bucket" --service-account=TRIGGER_SA
gcloud eventarc triggers list --location=asia-east1 # 列出觸發器
gcloud eventarc triggers delete process-upload-trigger --location=asia-east1
gcloud run services delete my-function --region=asia-east1 # 刪除函式服務
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
A[函式原始碼] --> B[gcloud run deploy<br/>--source --function]
B --> C[Cloud Build/<br/>buildpacks]
C --> D[Artifact<br/>Registry image]
D --> E[Cloud Run revision]
F{觸發來源?} -- HTTP --> G[呼叫 service URL]
F -- Cloud event --> H[Eventarc trigger]
H --> I[事件篩選與 trigger SA]
G --> E
I --> E
E --> J[Functions<br/>Framework handler]
J --> K{處理成功?}
K -- 是 --> L[記錄結果與指標]
K -- 否,事件型 --> M[依 retry/<br/>dead-letter 設計重送]
K -- 否,HTTP --> N[回傳錯誤並由<br/>caller 決定重試]
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class F,K decision
class M,N risk
class L good 已用 Cloud Functions v2 API 建立的既有函式,仍可為相容性使用
gcloud functions deploy --gen2管理;由gcloud run deploy --function建立的函式則用gcloud run管理。兩種管理介面不要混用。可用gcloud functions runtimes list或 Cloud Run runtime 文件確認目前可用版本,不要把 runtime 寫死在長期腳本裡。
八、Cloud SQL(關聯式資料庫)
# 建立 MySQL 執行個體
gcloud sql instances create my-sql --database-version=MYSQL_8_0 \
--cpu=2 --memory=7680MB --region=asia-east1
# 建立 PostgreSQL 執行個體
gcloud sql instances create my-pg --database-version=POSTGRES_16 \
--cpu=2 --memory=7680MB --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 # 刪除執行個體
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph PLAN[1|建立資料庫服務]
direction TB
A[選 engine、region、edition 與容量] --> B[建立 Cloud SQL instance]
B --> C{連線路徑?}
end
subgraph ACCESS[2|建立安全連線]
direction TB
D[設定私有<br/>VPC/PSC 與 DNS] --> F[建立 database<br/>與低權限 user]
E[授予 Connector/<br/>Auth Proxy<br/>runtime SA 權限] --> F
F --> H[應用以 Secret/IAM 連線]
end
subgraph RECOVERY[3|證明可觀測且可復原]
direction TB
G[啟用 backup 與 PITR] --> I[檢查 connection、latency、storage]
I --> J{還原演練通過 RTO/RPO?}
J -- 否 --> K[修正備份、<br/>容量或 runbook]
J -- 是 --> L[納入監控與變更流程]
end
C -- 私有 IP/PSC --> D
C -- Connector/Auth Proxy --> E
H --> G
K --> G
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class C,J decision
class K risk
class L good
--cpu/--memory適合 Cloud SQL Enterprise 的 custom machine;Enterprise Plus 與特定版本可能需要不同 tier。建立前先跑gcloud sql tiers list並查目標 Region。不要把真實密碼直接放進 shell history;production 連線優先 Cloud SQL connector/Auth Proxy、專用 service account 與 Secret Manager。
九、IAM(身份與存取管理)
IAM 是 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/compute.viewer"
# 移除使用者角色
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member="user:alice@example.com" --role="roles/compute.viewer"
gcloud iam roles list # 列出所有預定義角色
gcloud iam roles describe roles/compute.admin # 查看角色權限
# 建立服務帳號
gcloud iam service-accounts create my-app-sa --display-name="My Service Account"
gcloud iam service-accounts list # 列出所有服務帳號
# 為服務帳號授予角色
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:my-app-sa@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/storage.objectViewer"
# 模擬服務帳號身份
gcloud auth print-access-token \
--impersonate-service-account=my-app-sa@PROJECT_ID.iam.gserviceaccount.com
# 建立自訂角色
gcloud iam roles create customViewer --project=PROJECT_ID \
--title="Custom Viewer" --permissions=compute.instances.list,compute.instances.get
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph REQUEST[1|把需求說成權限]
direction TB
A[誰需要存取?<br/>principal] --> B[哪個資源?<br/>resource]
B --> C[要做哪些 action?]
C --> D[列出必要 permissions]
end
subgraph ROLE[2|選擇最窄角色與範圍]
direction TB
E{有合適 predefined role?}
E -- 是 --> F[選最窄角色]
E -- 否 --> G[建立並維護 custom role]
F --> H[綁定在最低必要層級]
G --> H
end
subgraph REVIEW[3|模擬、套用、驗證]
direction TB
I[Policy Simulator/<br/>同儕審查] --> J{會造成權限外溢?}
J -- 是 --> K[縮小角色、條件或資源範圍]
J -- 否 --> L[套用 binding]
L --> M[驗證存取與 Audit Logs]
end
D --> E
H --> I
K --> I
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class E,J decision
class K risk
class M good ACE 考試重點: 搞懂 Principal(主體)+ Role(角色)+ Resource(資源)三者怎麼綁在一起。盡量用預定義角色,守住最小權限原則。服務帳號金鑰能不用就不用,改走 Workload Identity Federation 或 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=ADMIN_CIDR --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
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
A[重現來源、目的、<br/>協定與 port] --> B{DNS 解析正確?}
B -- 否 --> C[修正 record/<br/>resolver]
B -- 是 --> D{route 與 next<br/>hop 存在?}
D -- 否 --> E[修正 subnet/<br/>route/peering]
D -- 是 --> F{ingress/egress<br/>firewall 允許?}
F -- 否 --> G[核對 priority、<br/>target SA/tag]
F -- 是 --> H{需要 NAT<br/>或回程路由?}
H -- 是但缺少 --> I[修正 NAT/<br/>對端 route]
H -- 已成立 --> J{OS firewall<br/>與應用監聽?}
J -- 否 --> K[修正 guest OS/<br/>listen address]
J -- 是 --> L[用 Connectivity<br/>Tests/<br/>flow logs 驗證]
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class B,D,F,H,J decision
class C,E,G,I,K risk
class L good
ADMIN_CIDR必須換成受控來源範圍;不要為了排錯把 SSH 對0.0.0.0/0開放。能使用 IAP TCP forwarding 或受管入口時,通常不需要給 VM 公開 SSH 來源。
十一、Cloud Build(CI/CD)
想把這些指令接成部署流程,可參考 用 Cloud Build 串起測試、建置與部署。
# 建立 Artifact Registry Docker repository(每個 location/repository 做一次)
gcloud artifacts repositories create apps --repository-format=docker --location=asia-east1
gcloud builds submit \
--tag=asia-east1-docker.pkg.dev/PROJECT_ID/apps/my-image:COMMIT_SHA # 提交建置
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 # 手動執行觸發器
# 以已建立的 2nd gen repository connection 建立 GitHub 觸發器
gcloud builds triggers create github \
--name=main-trigger --region=asia-east1 \
--repository=projects/PROJECT_ID/locations/asia-east1/connections/CONNECTION/repositories/REPOSITORY \
--branch-pattern="^main$" --build-config=cloudbuild.yaml
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph GATE[1|來源與品質閘門]
direction TB
A[Git commit/tag] --> B[Cloud Build trigger]
B --> C[測試、lint、policy checks]
C --> D{所有 gate 通過?}
D -- 否 --> E[停止建置並回報]
end
subgraph ARTIFACT[2|建立可追溯產物]
direction TB
F[建置 image] --> G[掃描並推送<br/>Artifact Registry<br/>tag = commit SHA]
G --> H[部署同一 digest 到測試環境]
end
subgraph RELEASE[3|驗證與晉級]
direction TB
I{功能與 SLO 通過?}
I -- 否 --> J[不晉級/<br/>回滾健康 digest]
I -- 是 --> K[核准後晉級 production]
K --> L[監控、Audit Logs<br/>與 provenance]
end
D -- 是 --> F
H --> I
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class D,I decision
class E,J risk
class L good 十二、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 # 刪除主題
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
A[Publisher] --> B[Topic]
B --> C[Subscription]
C --> D[Consumer pull/push]
D --> E{業務處理成功?}
E -- 是 --> F[提交副作用]
F --> G[Acknowledge]
E -- 否 --> H[不 ack/negative ack]
H --> I[依 backoff 重送]
I --> J{超過最大嘗試?}
J -- 否 --> D
J -- 是 --> K[Dead-letter topic]
K --> L[告警、修復後 replay]
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class E,J decision
class H,I,K risk
class G,L good
--auto-ack適合手動 lab 或已確定「收到就算完成」的情境;真實 consumer 應在副作用成功後 ack,並以 message ID 或業務 key 設計冪等處理。
十三、監控與日誌
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 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
十五、進階技巧

filter、sort-by、limit 與 format
是可依需求組合的查詢和呈現工具,不代表固定的內部執行順序。人工檢查用 table、shell 取值用
value、程式交接用 JSON;正式自動化不要解析預設表格文字。
格式化輸出
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" # 篩選標籤
組態切換(多環境管理)

Named Configuration 是方便切換 account、project、region 等設定的工具,不是 IAM
隔離邊界。啟用後用
gcloud config list 讀回 context;單次 flags 只覆寫當次命令,不代表已永久改動 named
configuration。
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 來快速切換,就不會不小心動到正式環境。
批次操作
# 第一步只輸出候選清單;人工檢查 target-vms.csv 後才進下一步
gcloud compute instances list --filter="labels.cleanup=true" \
--format="csv[no-heading](name,zone.basename())" > target-vms.csv
# 第二步逐筆執行並保留確認提示;變數一律加引號
while IFS=, read -r instance_name instance_zone; do
gcloud compute instances delete "$instance_name" --zone="$instance_zone"
done < target-vms.csv
gcloud compute instances delete my-vm --zone=asia-east1-b --quiet # --quiet 跳過確認
gcloud compute instances list --project=other-project-id # --project 操作其他專案
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph SCOPE[1|凍結候選範圍]
direction TB
A[用明確 filter 產生候選] --> B[輸出 CSV/JSON 檔]
B --> C[核對 project、<br/>location、數量]
C --> D[排除 owner/<br/>例外/受保護資源]
D --> E{備份與回復條件滿足?}
E -- 否 --> F[停止,不進入執行階段]
end
subgraph EXEC[2|小批次執行與驗證]
direction TB
G[同儕核准候選清單] --> H[小批次執行]
H --> I[重新 list/describe<br/>與健康驗證]
I --> J{失敗或範圍異常?}
J -- 是 --> K[立即停止並回復]
end
subgraph DONE[3|決定下一批]
direction TB
L{還有下一批?}
L -- 是 --> N[以同一核准清單<br/>重複小批次執行與驗證]
L -- 否 --> M[保存稽核紀錄]
end
E -- 是 --> G
J -- 否 --> L
classDef decision fill:#fef3c7,stroke:#d97706,color:#78350f
classDef risk fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
class E,J,L decision
class F,K risk
class M good --quiet 不是自動化品質保證,只是略過互動確認。只有當 target 已由前一個審核階段固定、失敗處理清楚,而且腳本能停止與記錄時才使用。
十六、ACE 備考用的 gcloud 指令整理
官方 ACE 考試指南沒有列出指令清單。下面依考試指南的工作項目,把前面各節的指令再整理一次;更多考試策略請參考 ACE 認證考試攻略。
# ===== gcloud 組態(日常設定,考試指南沒有逐項對應)=====
gcloud config set project PROJECT_ID # 切換專案
gcloud config set compute/zone ZONE # 設定預設可用區
gcloud config configurations activate NAME # 切換組態
# ===== Compute Engine(Section 2.1、3.1)=====
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 與安全(Section 4)=====
gcloud projects add-iam-policy-binding ... # 授予角色(主體+角色+資源)
gcloud iam service-accounts create ... # 建立服務帳號
gcloud iam roles describe ROLE # 查看角色權限
gcloud config set auth/impersonate_service_account SA_EMAIL # 模擬服務帳號(Section 4.2)
# ===== GKE(Section 2.1、3.1)=====
gcloud container clusters create ... # 建立叢集
gcloud container clusters get-credentials # 取得 kubectl 憑證
gcloud container clusters resize ... # 調整節點數
# ===== 無伺服器(Section 2.1、3.1)=====
gcloud run deploy ... # 部署 Cloud Run
gcloud run deploy ... --function=ENTRY_POINT # 部署 Cloud Run function
# ===== 儲存與資料庫(Section 2.2、3.2)=====
gcloud storage cp / rsync # Cloud Storage 操作
gcloud sql instances create ... # 建立 Cloud SQL
gcloud sql connect INSTANCE # 連線 Cloud SQL
# ===== API 管理(Section 1.1)=====
gcloud services enable SERVICE_NAME # 啟用 API
gcloud services list --enabled # 列出已啟用 API
備考提醒: 不必背完整語法,重點是搞懂每個指令拿來做什麼、關鍵參數有哪些。
十七、一頁速查表(精簡版)
收藏這 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 # 指定專案
官方命令參考與查核範圍
- Google Cloud CLI reference
- gcloud CLI authentication 與 ADC
- IAM authentication 與無金鑰 workload 身分
- Container Registry 遷移到 Artifact Registry
- 部署 Cloud Run function
- 管理 gcloud CLI components
本文最後查核日期為 2026-08-04。gcloud 指令與服務旗標會隨元件版本、release track、API 與安裝方式改變;正式執行前使用
gcloud version、gcloud COMMAND --help與對應服務 reference 核對。
總結
這份速查表適合在忘記指令語法時回來查。實際操作前,仍要先確認目前的 Project、Region 和登入身分,尤其是刪除、修改權限或切換正式環境的指令。
依目前需求延伸閱讀:
- 想深入 Compute Engine?看 GCP 運算服務介紹
- 想學 CI/CD 自動化?看 Cloud Build 實戰
- 想準備 ACE 考試?看 ACE 認證考試完整攻略
- 想了解 IaC?看 Terraform on GCP
讀完後,留一個學習紀錄
試著用自己的話說出一個重點,以及你會如何運用。實作文章請先核對結果與清理資源,再標記為讀完。
文章進度以你確認讀完的標記為準,可隨時取消。舊版造訪紀錄保留,但不計入讀完;這份自評不代表已掌握內容。