跳至主要內容
ESC

gcloud CLI 指令速查表

依場景分類的 Google Cloud 命令列工具快查

125 個常用指令 13 個分類 63 個考試重點

gcloud 語法結構

gcloud [GROUP] [SUBGROUP] [ACTION] [RESOURCE] [--flags]
範例: gcloud compute instances create my-vm --zone=us-central1-a
常用全域 Flag
Flag 說明
--project=PROJECT_ID 指定目標專案
--region=REGION 指定區域(如 us-central1)
--zone=ZONE 指定可用區(如 us-central1-a)
--format=FORMAT 輸出格式:json / yaml / table / csv / value
--filter=EXPRESSION 篩選結果(如 "name:my-*")
--quiet / -q 跳過所有互動提示,適合腳本自動化
--verbosity=LEVEL 日誌等級:debug / info / warning / error
--account=ACCOUNT 指定操作使用的帳號

初始設定 11

gcloud init 考試

初始化 gcloud CLI,設定帳號和專案

範例
                        gcloud init
                      
第一次使用 gcloud 必須先執行此命令,會引導選擇帳號、專案和預設 region/zone
gcloud auth login 考試

以互動方式登入 Google 帳號

範例
                        gcloud auth login --no-launch-browser
                      
重要 Flag
--no-launch-browser 適用於無 GUI 環境(SSH 連線)
遠端 SSH 連線時加 --no-launch-browser,會給你一個 URL 去另一台機器開啟
gcloud auth application-default login 考試

設定 Application Default Credentials (ADC)

範例
                        gcloud auth application-default login
                      
本地開發時讓 SDK/Client Library 自動取得你的使用者憑證,不要在正式環境使用
gcloud config set 考試

設定 gcloud CLI 預設屬性

範例
                        gcloud config set project my-project-id
                      
常用屬性:project、compute/region、compute/zone,設定後不需每次都指定 --project
gcloud config list

列出當前所有設定值

範例
                        gcloud config list --format='table(core.project, compute.region, compute.zone)'
                      
重要 Flag
--all 列出所有屬性(含未設定的)
快速確認目前使用的 project、region、zone
gcloud config configurations create 考試

建立新的命名設定檔

範例
                        gcloud config configurations create my-dev-config
                      
管理多專案/多帳號的最佳方式,每個設定檔有獨立的 project、account、region
gcloud config configurations activate 考試

切換到指定的設定檔

範例
                        gcloud config configurations activate my-prod-config
                      
搭配 create 使用,快速在 dev / staging / prod 專案間切換
gcloud config configurations list

列出所有設定檔及其啟用狀態

範例
                        gcloud config configurations list
                      
IS_ACTIVE 欄位標示目前啟用的設定檔
gcloud components install

安裝額外的 gcloud CLI 元件

範例
                        gcloud components install kubectl
                      
常用元件:kubectl(K8s)、gke-gcloud-auth-plugin、beta、alpha
gcloud components update

更新所有已安裝的 gcloud CLI 元件

範例
                        gcloud components update
                      
定期執行以獲得最新功能和安全修補
gcloud info

顯示 gcloud CLI 安裝資訊和環境診斷

範例
                        gcloud info --format='value(config.account)'
                      
偵錯時很有用,可以確認 SDK 路徑、Python 版本、目前帳號等

專案管理 9

gcloud projects create 考試

建立新的 GCP 專案

範例
                        gcloud projects create my-new-project --name="My Project" --folder=123456789
                      
重要 Flag
--name 專案顯示名稱
--folder 放置在指定資料夾下
--organization 放置在指定組織下
Project ID 全球唯一且建立後不可更改,命名要謹慎
gcloud projects list

列出你有存取權限的所有專案

範例
                        gcloud projects list --filter='lifecycleState=ACTIVE' --format='table(projectId, name)'
                      
重要 Flag
--filter 篩選條件
加 --filter='lifecycleState=ACTIVE' 過濾掉已刪除的專案
gcloud projects describe

檢視特定專案的詳細資訊

範例
                        gcloud projects describe my-project-id
                      
可查看專案編號、建立時間、生命週期狀態等
gcloud projects delete 考試

刪除專案(30 天內可復原)

範例
                        gcloud projects delete my-old-project
                      
刪除後有 30 天的復原期(Recovery Period),之後所有資源會被永久刪除
gcloud services enable 考試

啟用指定的 API 服務

範例
                        gcloud services enable compute.googleapis.com container.googleapis.com
                      
使用任何 GCP 服務前必須先啟用其 API,可一次啟用多個,用空格分隔
gcloud services disable

停用指定的 API 服務

範例
                        gcloud services disable compute.googleapis.com
                      
重要 Flag
--force 強制停用(即使有相依資源)
停用 API 不會刪除已建立的資源,但無法再操作它們
gcloud services list

列出已啟用的 API 服務

範例
                        gcloud services list --enabled --filter='name:compute'
                      
重要 Flag
--enabled 只列出已啟用的
--available 列出所有可用的
可搭配 --filter 查找特定 API 是否已啟用
gcloud billing accounts list 考試

列出你可存取的帳單帳戶

範例
                        gcloud billing accounts list
                      
一個帳單帳戶可以綁定多個專案
gcloud billing projects link 考試

將專案連結到帳單帳戶

範例
                        gcloud billing projects link my-project --billing-account=0X0X0X-0X0X0X-0X0X0X
                      
重要 Flag
--billing-account 帳單帳戶 ID
專案必須連結帳單帳戶才能使用付費服務

Compute Engine 16

gcloud compute instances create 考試

建立 Compute Engine VM 執行個體

範例
                        gcloud compute instances create my-vm --zone=us-central1-a --machine-type=e2-medium --image-family=debian-12 --image-project=debian-cloud
                      
重要 Flag
--machine-type 機型(e2-micro, n2-standard-4 等)
--image-family OS 映像檔家族
--boot-disk-size 開機碟大小(如 50GB)
--tags 網路標記(用於防火牆規則)
--preemptible / --spot 建立搶佔式 / Spot VM
--service-account 指定服務帳號
考試常考:Spot VM 最高省 91% 但隨時可能被回收,不適合有狀態服務
gcloud compute instances list

列出所有 VM 執行個體

範例
                        gcloud compute instances list --filter='status=RUNNING' --format='table(name, zone, machineType.basename(), status)'
                      
重要 Flag
--filter 篩選條件
--zones 限定特定 zone
使用 machineType.basename() 在 format 中取得簡潔的機型名稱
gcloud compute instances describe

檢視特定 VM 的詳細資訊

範例
                        gcloud compute instances describe my-vm --zone=us-central1-a
                      
可查看 IP、磁碟、服務帳號等完整配置
gcloud compute instances start

啟動已停止的 VM

範例
                        gcloud compute instances start my-vm --zone=us-central1-a
                      
啟動後外部 IP 會改變(除非使用靜態 IP)
gcloud compute instances stop 考試

停止執行中的 VM

範例
                        gcloud compute instances stop my-vm --zone=us-central1-a
                      
停止的 VM 不收 CPU/RAM 費用,但磁碟仍計費。考試常考成本優化
gcloud compute instances delete

刪除 VM 執行個體

範例
                        gcloud compute instances delete my-vm --zone=us-central1-a --delete-disks=all
                      
重要 Flag
--delete-disks 連同刪除的磁碟類型:all / boot / data
--keep-disks 保留的磁碟類型
預設會詢問是否刪除開機碟,加 --delete-disks=all 一起清除
gcloud compute instances add-tags 考試

為 VM 新增網路標記

範例
                        gcloud compute instances add-tags my-vm --tags=http-server,https-server --zone=us-central1-a
                      
重要 Flag
--tags 逗號分隔的標記清單
網路標記用於防火牆規則的目標匹配,是考試重點
gcloud compute instances remove-tags

移除 VM 的網路標記

範例
                        gcloud compute instances remove-tags my-vm --tags=http-server --zone=us-central1-a
                      
移除標記後相關防火牆規則不再套用到這台 VM
gcloud compute ssh 考試

SSH 連線到 VM

範例
                        gcloud compute ssh my-vm --zone=us-central1-a --tunnel-through-iap
                      
重要 Flag
--tunnel-through-iap 透過 IAP 通道連線(不需外部 IP)
--command 連線後直接執行命令
--ssh-key-file 指定 SSH 金鑰
--tunnel-through-iap 是零信任連線最佳實踐,不需要公開外部 IP,考試高頻考點
gcloud compute scp

在本地和 VM 之間傳輸檔案

範例
                        gcloud compute scp local-file.txt my-vm:~/remote-file.txt --zone=us-central1-a
                      
重要 Flag
--recurse 遞迴複製目錄
語法同 scp:本地路徑 VM名稱:遠端路徑,方向可互換
gcloud compute disks create 考試

建立獨立磁碟

範例
                        gcloud compute disks create my-disk --size=100GB --type=pd-ssd --zone=us-central1-a
                      
重要 Flag
--size 磁碟大小
--type 磁碟類型:pd-standard / pd-balanced / pd-ssd
pd-ssd 效能最好,pd-balanced 性價比最佳,pd-standard 最便宜
gcloud compute disks snapshot 考試

建立磁碟快照

範例
                        gcloud compute disks snapshot my-disk --snapshot-names=my-snap --zone=us-central1-a
                      
重要 Flag
--snapshot-names 快照名稱
快照是增量備份,第一次完整備份後續只儲存差異,成本效益高
gcloud compute images create 考試

從磁碟或快照建立自訂映像檔

範例
                        gcloud compute images create my-image --source-disk=my-vm --source-disk-zone=us-central1-a
                      
重要 Flag
--source-disk 來源磁碟
--source-snapshot 來源快照
--family 映像檔家族名稱
自訂映像檔用於建立預裝軟體的標準 VM 範本,Golden Image 模式
gcloud compute instance-templates create 考試

建立執行個體範本

範例
                        gcloud compute instance-templates create my-template --machine-type=e2-medium --image-family=debian-12 --image-project=debian-cloud --tags=http-server
                      
重要 Flag
--machine-type 機型
--image-family OS 映像檔家族
--metadata-from-file 啟動腳本等 metadata
Instance Template 是不可變的,更新需建立新版本。搭配 MIG 使用實現自動擴展
gcloud compute instance-groups managed create 考試

建立受管理的執行個體群組 (MIG)

範例
                        gcloud compute instance-groups managed create my-mig --template=my-template --size=3 --zone=us-central1-a
                      
重要 Flag
--template 使用的執行個體範本
--size 初始執行個體數量
--health-check 健康檢查
MIG 提供自動修復、自動擴展、滾動更新。考試必考 MIG vs Unmanaged IG
gcloud compute instance-groups managed set-autoscaling 考試

設定 MIG 自動擴展策略

範例
                        gcloud compute instance-groups managed set-autoscaling my-mig --max-num-replicas=10 --min-num-replicas=2 --target-cpu-utilization=0.6 --zone=us-central1-a
                      
重要 Flag
--max-num-replicas 最大執行個體數
--min-num-replicas 最小執行個體數
--target-cpu-utilization 目標 CPU 使用率(0~1)
--cool-down-period 冷卻期秒數
CPU 使用率是最常用的擴展指標,也可用 LB 使用率或自訂指標

GKE 10

gcloud container clusters create 考試

建立 GKE 叢集

範例
                        gcloud container clusters create my-cluster --zone=us-central1-a --num-nodes=3 --machine-type=e2-medium --enable-autoscaling --min-nodes=1 --max-nodes=5
                      
重要 Flag
--num-nodes 每個 zone 的節點數
--machine-type 節點機型
--enable-autoscaling 啟用節點自動擴展
--enable-ip-alias 啟用 VPC-native(建議)
--mode=autopilot 建立 Autopilot 叢集
Standard vs Autopilot 是考試必考。Autopilot 由 Google 管理節點,按 Pod 計費
gcloud container clusters get-credentials 考試

取得叢集憑證並設定 kubectl

範例
                        gcloud container clusters get-credentials my-cluster --zone=us-central1-a
                      
執行後 kubectl 會自動指向該叢集,是使用 kubectl 前的必要步驟
gcloud container clusters list

列出所有 GKE 叢集

範例
                        gcloud container clusters list
                      
可看到叢集狀態、節點數、K8s 版本等資訊
gcloud container clusters resize

調整叢集節點數量

範例
                        gcloud container clusters resize my-cluster --num-nodes=5 --zone=us-central1-a
                      
重要 Flag
--num-nodes 目標節點數
--node-pool 指定節點池
手動調整節點數,如果啟用了 autoscaling 則由 autoscaler 自動管理
gcloud container clusters update

更新叢集設定

範例
                        gcloud container clusters update my-cluster --enable-autoscaling --min-nodes=1 --max-nodes=10 --zone=us-central1-a
                      
重要 Flag
--enable-autoscaling 啟用節點自動擴展
--enable-network-policy 啟用網路政策
可在不刪除叢集的情況下啟用/停用功能
gcloud container clusters delete

刪除 GKE 叢集

範例
                        gcloud container clusters delete my-cluster --zone=us-central1-a --quiet
                      
會刪除叢集的所有節點 VM 和相關資源,加 --quiet 跳過確認
gcloud container node-pools create 考試

建立新的節點池

範例
                        gcloud container node-pools create gpu-pool --cluster=my-cluster --machine-type=n1-standard-4 --accelerator=type=nvidia-tesla-t4,count=1 --num-nodes=1 --zone=us-central1-a
                      
重要 Flag
--cluster 目標叢集
--machine-type 節點機型
--accelerator GPU 加速器設定
--enable-autoscaling 啟用自動擴展
不同工作負載用不同節點池:一般工作用 e2,ML 訓練用 GPU 節點池
gcloud container node-pools delete

刪除節點池

範例
                        gcloud container node-pools delete gpu-pool --cluster=my-cluster --zone=us-central1-a
                      
刪除前確保 Pod 已遷移到其他節點池
gcloud container images list

列出 Container Registry 中的映像檔

範例
                        gcloud container images list --repository=gcr.io/my-project
                      
重要 Flag
--repository 指定倉庫路徑
新專案建議改用 Artifact Registry(gcloud artifacts docker images list)
gcloud container clusters create-auto 考試

建立 Autopilot 叢集(簡化指令)

範例
                        gcloud container clusters create-auto my-autopilot --region=us-central1
                      
重要 Flag
--region 區域(Autopilot 叢集是區域性的)
Autopilot 不需管理節點,按 Pod 資源計費,是 Google 推薦的 GKE 模式

Cloud Run 8

gcloud run deploy 考試

部署容器到 Cloud Run

範例
                        gcloud run deploy my-service --image=gcr.io/my-project/my-app:latest --region=us-central1 --allow-unauthenticated
                      
重要 Flag
--image 容器映像檔路徑
--region 部署區域
--allow-unauthenticated 允許未驗證的存取(公開)
--port 容器監聽的 port
--memory 記憶體上限(如 512Mi)
--cpu CPU 數量(如 1, 2)
--min-instances 最小實例數(0 = 可縮到零)
--max-instances 最大實例數
--set-env-vars 設定環境變數
Cloud Run 也支援 --source 直接從原始碼部署(自動建置容器映像檔)
gcloud run services list

列出 Cloud Run 服務

範例
                        gcloud run services list --region=us-central1
                      
重要 Flag
--platform 平台:managed / gke
可看到每個服務的 URL 和最新修訂版本
gcloud run services describe

檢視 Cloud Run 服務詳細資訊

範例
                        gcloud run services describe my-service --region=us-central1 --format='value(status.url)'
                      
加 --format='value(status.url)' 只取服務 URL
gcloud run services delete

刪除 Cloud Run 服務

範例
                        gcloud run services delete my-service --region=us-central1
                      
刪除服務會同時刪除所有修訂版本
gcloud run services update-traffic 考試

調整 Cloud Run 流量分配

範例
                        gcloud run services update-traffic my-service --to-revisions=my-service-00002=50,my-service-00001=50 --region=us-central1
                      
重要 Flag
--to-revisions 指定修訂版本和流量百分比
--to-latest 全部流量導向最新版本
用於 Canary 部署或藍綠部署,逐步切換流量到新版本
gcloud run jobs create 考試

建立 Cloud Run Job

範例
                        gcloud run jobs create my-job --image=gcr.io/my-project/my-batch:latest --region=us-central1 --tasks=10
                      
重要 Flag
--tasks 任務數量
--parallelism 最大並行數
--task-timeout 單一任務逾時
Cloud Run Jobs 適合批次處理、資料遷移等有結束時間的工作負載
gcloud run jobs execute

執行 Cloud Run Job

範例
                        gcloud run jobs execute my-job --region=us-central1
                      
重要 Flag
--wait 等待執行完成
也可透過 Cloud Scheduler 定期排程執行
gcloud run deploy (from source)

直接從原始碼部署到 Cloud Run

範例
                        gcloud run deploy my-service --source=. --region=us-central1
                      
重要 Flag
--source 原始碼目錄路徑
自動使用 Cloud Build 建置容器映像檔,適合快速原型開發

App Engine 8

gcloud app deploy 考試

部署應用程式到 App Engine

範例
                        gcloud app deploy app.yaml --version=v2 --no-promote
                      
重要 Flag
--version 版本名稱
--no-promote 部署但不接收流量(用於測試)
--stop-previous-version 停止前一個版本
--no-promote 部署新版本但不切流量,測試通過後再用 migrate-traffic 切換
gcloud app browse

在瀏覽器中開啟 App Engine 應用

範例
                        gcloud app browse --service=api
                      
重要 Flag
--service 指定服務名稱
快速開啟應用 URL,預設開啟 default 服務
gcloud app logs tail

即時串流 App Engine 日誌

範例
                        gcloud app logs tail --service=default
                      
重要 Flag
--service 指定服務
--level 日誌等級:debug / info / warning / error / critical
即時查看應用日誌,適合開發除錯
gcloud app versions list

列出 App Engine 所有版本

範例
                        gcloud app versions list --service=default
                      
可看到每個版本的流量分配比例和狀態
gcloud app versions delete

刪除 App Engine 版本

範例
                        gcloud app versions delete v1 v2 --service=default
                      
無法刪除正在接收流量的版本,先切流量再刪除
gcloud app services set-traffic 考試

設定 App Engine 服務的流量分配

範例
                        gcloud app services set-traffic default --splits=v2=0.5,v1=0.5
                      
重要 Flag
--splits 版本和流量比例
--split-by 分割方式:cookie / ip / random
--migrate 漸進式遷移流量
三種流量分割方式:cookie(同使用者固定版本)、ip、random。考試可能考
gcloud app describe

檢視 App Engine 應用的設定

範例
                        gcloud app describe
                      
每個專案只能有一個 App Engine 應用,且區域建立後不可更改
gcloud app instances list

列出 App Engine 執行中的實例

範例
                        gcloud app instances list --service=default --version=v1
                      
可查看每個實例的狀態和資源使用量

Cloud Functions 6

gcloud functions deploy (1st gen) 考試

部署 Cloud Functions 第 1 代函數

範例
                        gcloud functions deploy my-function --runtime=nodejs20 --trigger-http --entry-point=helloWorld --region=us-central1 --allow-unauthenticated
                      
重要 Flag
--runtime 執行環境(nodejs20, python312, go122 等)
--trigger-http HTTP 觸發器
--trigger-topic Pub/Sub topic 觸發
--trigger-bucket Cloud Storage bucket 觸發
--entry-point 函數進入點名稱
--memory 記憶體上限(如 256MB)
1st gen 每個函數同一時間只處理一個請求,2nd gen 支援並行請求
gcloud functions call

直接呼叫 Cloud Function

範例
                        gcloud functions call my-function --data='{"name": "World"}' --region=us-central1
                      
重要 Flag
--data 傳入的 JSON 資料
快速測試函數,不需要透過 HTTP 端點
gcloud functions logs read

讀取 Cloud Function 的執行日誌

範例
                        gcloud functions logs read my-function --region=us-central1 --limit=20
                      
重要 Flag
--limit 最多顯示的日誌筆數
--min-log-level 最低日誌等級
快速除錯函數執行問題,也可在 Cloud Logging 主控台查看更詳細的日誌
gcloud functions list

列出所有 Cloud Functions

範例
                        gcloud functions list --regions=us-central1
                      
可看到函數狀態、觸發器類型、最後更新時間
gcloud functions delete

刪除 Cloud Function

範例
                        gcloud functions delete my-function --region=us-central1
                      
刪除是不可逆的,建議先確認沒有其他服務依賴此函數
gcloud run functions deploy (2nd gen) 考試

部署 Cloud Functions 第 2 代函數(基於 Cloud Run)

範例
                        gcloud run functions deploy my-function --runtime=nodejs20 --trigger-http --entry-point=helloWorld --region=us-central1 --allow-unauthenticated
                      
重要 Flag
--runtime 執行環境
--trigger-http HTTP 觸發器
--concurrency 每個實例的最大並行請求數
--max-instances 最大實例數
2nd gen 底層跑在 Cloud Run,支援並行請求、更長 timeout(60 分鐘)、更大記憶體(32 GB)

Cloud Storage / gsutil 10

gsutil mb 考試

建立 Cloud Storage Bucket

範例
                        gsutil mb -l us-central1 -c standard gs://my-unique-bucket
                      
重要 Flag
-l Bucket 位置(region 或 multi-region)
-c 儲存類別:standard / nearline / coldline / archive
-b on 啟用 Uniform Bucket-Level Access
Bucket 名稱全球唯一。建議啟用 Uniform Access(-b on),新 Bucket 預設已啟用
gsutil cp 考試

上傳、下載或複製檔案

範例
                        gsutil cp -r ./local-dir gs://my-bucket/remote-dir
                      
重要 Flag
-r 遞迴複製目錄
-m 多線程平行傳輸(大量檔案時顯著加速)
-z 上傳時壓縮指定副檔名
加 -m 多線程傳輸可大幅加速!支援 gs:// 到 gs:// 的伺服器端複製
gsutil mv

移動或重新命名物件

範例
                        gsutil mv gs://my-bucket/old-name.txt gs://my-bucket/new-name.txt
                      
GCS 沒有原生 rename,mv 實際上是 cp + rm
gsutil rm

刪除物件或 Bucket

範例
                        gsutil rm -r gs://my-bucket
                      
重要 Flag
-r 遞迴刪除(含所有物件)
-a 刪除所有版本(含歷史版本)
gsutil rm -r gs://bucket 會刪除 bucket 及其所有物件
gsutil ls

列出 Bucket 或物件

範例
                        gsutil ls -la gs://my-bucket/path/
                      
重要 Flag
-l 長格式(含大小和更新時間)
-a 包含歷史版本
-r 遞迴列出
gsutil ls(不帶路徑)列出你所有的 Bucket
gsutil rsync 考試

同步本地目錄和 Bucket

範例
                        gsutil -m rsync -r -d ./local-dir gs://my-bucket/backup
                      
重要 Flag
-r 遞迴同步子目錄
-d 刪除目的地多餘的檔案
-n 乾跑模式(只顯示不執行)
-d 會刪除目的地多餘的檔案,使用前建議先用 -n 乾跑確認。常用於備份和部署
gsutil iam ch 考試

修改 Bucket 或物件的 IAM 權限

範例
                        gsutil iam ch user:reader@example.com:objectViewer gs://my-bucket
                      
格式:gsutil iam ch TYPE:EMAIL:ROLE gs://bucket。建議使用 Uniform Access 簡化權限管理
gsutil lifecycle set 考試

設定物件生命週期管理規則

範例
                        gsutil lifecycle set lifecycle.json gs://my-bucket
                      
可設定自動轉換儲存類別(如 30 天後轉 Nearline)或自動刪除舊物件。考試重要考點
gsutil versioning set on/off 考試

啟用或停用物件版本控制

範例
                        gsutil versioning set on gs://my-bucket
                      
啟用後每次覆寫都會保留舊版本,搭配 lifecycle 自動清理舊版本控制成本
gcloud storage cp

新一代 Cloud Storage CLI(取代 gsutil cp)

範例
                        gcloud storage cp -r ./local-dir gs://my-bucket/remote-dir
                      
重要 Flag
-r 遞迴複製
gcloud storage 是新一代命令,效能比 gsutil 更好,語法類似但整合在 gcloud 中

資料庫 11

gcloud sql instances create 考試

建立 Cloud SQL 執行個體

範例
                        gcloud sql instances create my-sql --database-version=MYSQL_8_0 --tier=db-n1-standard-2 --region=us-central1 --availability-type=REGIONAL
                      
重要 Flag
--database-version 資料庫版本(MYSQL_8_0, POSTGRES_15 等)
--tier 實例規格
--availability-type ZONAL 或 REGIONAL(HA)
--storage-auto-increase 自動擴增儲存空間
REGIONAL 可用類型提供高可用(跨 Zone 自動故障轉移),費用約為 ZONAL 的兩倍
gcloud sql instances list

列出所有 Cloud SQL 執行個體

範例
                        gcloud sql instances list
                      
可看到實例狀態、資料庫版本、區域等資訊
gcloud sql instances delete

刪除 Cloud SQL 執行個體

範例
                        gcloud sql instances delete my-sql
                      
刪除前建議先匯出資料備份
gcloud sql connect

連線到 Cloud SQL 執行個體

範例
                        gcloud sql connect my-sql --user=root
                      
重要 Flag
--user 資料庫使用者名稱
會透過 Cloud SQL Auth Proxy 安全連線,不需設定 IP 白名單
gcloud sql databases create

在 Cloud SQL 實例中建立資料庫

範例
                        gcloud sql databases create my-database --instance=my-sql
                      
重要 Flag
--instance Cloud SQL 實例名稱
--charset 字元集(如 utf8mb4)
一個 Cloud SQL 實例可以包含多個資料庫
gcloud sql databases list

列出實例中的所有資料庫

範例
                        gcloud sql databases list --instance=my-sql
                      
可查看資料庫名稱、字元集等資訊
gcloud sql users create

建立 Cloud SQL 使用者

範例
                        gcloud sql users create my-user --instance=my-sql --password=my-secure-password --host=%
                      
重要 Flag
--instance Cloud SQL 實例名稱
--password 使用者密碼
--host 允許連線的主機(MySQL 專用)
建議用 Secret Manager 管理密碼,不要在指令行明文輸入
gcloud spanner instances create 考試

建立 Cloud Spanner 執行個體

範例
                        gcloud spanner instances create my-spanner --config=regional-us-central1 --nodes=1 --description='My Spanner'
                      
重要 Flag
--config 實例設定(regional-* 或 multi-region)
--nodes 節點數
--processing-units 處理單元(比 nodes 更細粒度)
Spanner 按節點計費,很貴。看到「全球部署 + 強一致性 + 關聯式」就選 Spanner
gcloud firestore databases create 考試

建立 Firestore 資料庫

範例
                        gcloud firestore databases create --location=us-central --type=firestore-native
                      
重要 Flag
--location 資料庫位置
--type firestore-native 或 datastore-mode
Native Mode 支援即時監聽,Datastore Mode 相容舊 API。新專案選 Native Mode
bq query 考試

執行 BigQuery SQL 查詢

範例
                        bq query --use_legacy_sql=false 'SELECT COUNT(*) FROM `my-project.my_dataset.my_table`'
                      
重要 Flag
--use_legacy_sql=false 使用標準 SQL(建議)
--format 輸出格式:json / csv / prettyjson
--max_rows 最大回傳列數
--dry_run 只估算掃描量,不實際執行
--dry_run 可以先估算查詢會掃描多少資料(影響費用),避免意外高額帳單
bq load 考試

載入資料到 BigQuery 表格

範例
                        bq load --source_format=CSV --autodetect my_dataset.my_table gs://my-bucket/data.csv
                      
重要 Flag
--source_format CSV / JSON / AVRO / PARQUET / ORC
--autodetect 自動偵測 schema
--replace 取代整張表格
--append_table 追加到現有表格
Parquet 和 Avro 格式自帶 schema,載入更快且不需 --autodetect

網路 10

gcloud compute networks create 考試

建立 VPC 網路

範例
                        gcloud compute networks create my-vpc --subnet-mode=custom
                      
重要 Flag
--subnet-mode auto(自動建立子網路)或 custom(手動)
--bgp-routing-mode regional 或 global
正式環境用 custom mode,可完全控制 IP 範圍。auto mode 適合快速原型
gcloud compute networks list

列出所有 VPC 網路

範例
                        gcloud compute networks list
                      
每個專案預設有一個 default VPC(auto mode)
gcloud compute networks subnets create 考試

建立子網路

範例
                        gcloud compute networks subnets create my-subnet --network=my-vpc --range=10.0.1.0/24 --region=us-central1 --enable-private-ip-google-access
                      
重要 Flag
--network 所屬 VPC 網路
--range IP CIDR 範圍
--enable-private-ip-google-access 私有 Google 存取(推薦)
--secondary-range 次要 IP 範圍(GKE 用)
Private Google Access 讓沒有外部 IP 的 VM 能存取 Google API,是安全最佳實踐
gcloud compute networks subnets list

列出所有子網路

範例
                        gcloud compute networks subnets list --network=my-vpc
                      
重要 Flag
--network 篩選特定 VPC 的子網路
GCP VPC 是全球性的,但 Subnet 是區域性的
gcloud compute firewall-rules create 考試

建立防火牆規則

範例
                        gcloud compute firewall-rules create allow-http --network=my-vpc --allow=tcp:80,tcp:443 --target-tags=http-server --source-ranges=0.0.0.0/0
                      
重要 Flag
--network 套用到的 VPC
--allow 允許的協定和 port
--deny 拒絕的協定和 port
--target-tags 目標 VM 的網路標記
--source-ranges 來源 IP 範圍
--source-tags 來源 VM 的網路標記
--priority 優先順序(0-65535,數字越小優先越高)
防火牆規則是 VPC 層級(不是 Subnet)。priority 數字越小優先越高。考試高頻考點
gcloud compute firewall-rules list

列出所有防火牆規則

範例
                        gcloud compute firewall-rules list --filter='network:my-vpc' --format='table(name, direction, priority, allowed)'
                      
建議加 --format 只顯示關鍵欄位,預設輸出資訊太多
gcloud compute firewall-rules delete

刪除防火牆規則

範例
                        gcloud compute firewall-rules delete allow-http
                      
刪除前確認沒有依賴此規則的服務
gcloud compute addresses create 考試

預留靜態 IP 位址

範例
                        gcloud compute addresses create my-static-ip --region=us-central1
                      
重要 Flag
--region 區域(外部區域 IP)
--global 全球靜態 IP(用於全球 LB)
--subnet 子網路(內部靜態 IP)
預留但未使用的靜態 IP 會收費!全球 IP 用於全球 HTTP(S) LB
gcloud compute addresses list

列出所有預留的 IP 位址

範例
                        gcloud compute addresses list
                      
STATUS 為 RESERVED 表示已預留但未使用(會收費)
gcloud compute forwarding-rules create 考試

建立轉發規則(Load Balancer 前端)

範例
                        gcloud compute forwarding-rules create my-lb-frontend --global --target-http-proxy=my-proxy --ports=80
                      
重要 Flag
--global 全球轉發規則
--target-http-proxy 目標 HTTP Proxy
--target-pool 目標 Pool(L4 LB)
--ports 監聽的 port
Forwarding Rule 是 LB 的前端入口點,綁定 IP + Port 到後端服務

IAM & 安全 12

gcloud iam roles create 考試

建立自訂 IAM 角色

範例
                        gcloud iam roles create myCustomRole --project=my-project --title='My Custom Role' --permissions=compute.instances.list,compute.instances.get
                      
重要 Flag
--project / --organization 建立在專案或組織層級
--title 角色顯示名稱
--permissions 權限清單(逗號分隔)
--file 從 YAML/JSON 檔案載入角色定義
Custom Role 實現最小權限原則。Predefined Role 權限太多或太少時建立 Custom Role
gcloud iam roles list

列出可用的 IAM 角色

範例
                        gcloud iam roles list --filter='name:compute' --format='table(name, title)'
                      
重要 Flag
--project 列出專案的自訂角色
不加 --project 列出 Predefined Role,加 --project 列出自訂角色
gcloud iam service-accounts create 考試

建立服務帳號

範例
                        gcloud iam service-accounts create my-sa --display-name='My Service Account' --description='For app authentication'
                      
重要 Flag
--display-name 顯示名稱
--description 描述
每個服務/應用使用獨立的服務帳號是安全最佳實踐
gcloud iam service-accounts list

列出專案中的服務帳號

範例
                        gcloud iam service-accounts list --format='table(email, displayName, disabled)'
                      
注意 Google 自動建立的服務帳號(如 Compute Engine default SA)
gcloud iam service-accounts keys create 考試

建立服務帳號金鑰

範例
                        gcloud iam service-accounts keys create key.json --iam-account=my-sa@my-project.iam.gserviceaccount.com
                      
重要 Flag
--iam-account 服務帳號 email
盡量避免使用金鑰檔案!優先用 Workload Identity(GKE)或 Service Account Impersonation
gcloud projects add-iam-policy-binding 考試

為使用者/服務帳號綁定 IAM 角色

範例
                        gcloud projects add-iam-policy-binding my-project --member='serviceAccount:my-sa@my-project.iam.gserviceaccount.com' --role='roles/storage.objectViewer'
                      
重要 Flag
--member 成員(user: / serviceAccount: / group:)
--role IAM 角色
--condition 條件式綁定(如時間限制)
這是最常用的 IAM 指令。member 格式:user:email, serviceAccount:email, group:email
gcloud projects get-iam-policy 考試

取得專案的完整 IAM 政策

範例
                        gcloud projects get-iam-policy my-project --format=json > policy.json
                      
審計存取權限時很有用。匯出成 JSON 可以用程式分析
gcloud kms keyrings create 考試

建立 KMS 金鑰環

範例
                        gcloud kms keyrings create my-keyring --location=us-central1
                      
重要 Flag
--location 金鑰環位置
金鑰環是金鑰的邏輯容器,建立後不可刪除(只能停用其中的金鑰)
gcloud kms keys create 考試

建立 KMS 加密金鑰

範例
                        gcloud kms keys create my-key --keyring=my-keyring --location=us-central1 --purpose=encryption --rotation-period=90d
                      
重要 Flag
--keyring 金鑰環名稱
--purpose 用途:encryption / asymmetric-signing 等
--rotation-period 自動輪替週期
CMEK(Customer-Managed Encryption Keys)讓你控制加密金鑰,是合規常見需求
gcloud secrets create 考試

建立 Secret Manager 機密

範例
                        gcloud secrets create my-secret --replication-policy='automatic'
                      
重要 Flag
--replication-policy automatic 或 user-managed
Secret Manager 存放密碼和 API Key,Cloud KMS 管理加密金鑰,兩者功能不同
gcloud secrets versions add

新增機密值的版本

範例
                        echo -n 'my-secret-value' | gcloud secrets versions add my-secret --data-file=-
                      
重要 Flag
--data-file 機密值的來源檔案(- 表示 stdin)
用 echo -n(不換行)+ --data-file=- 從 stdin 輸入,避免機密值出現在指令歷史
gcloud secrets versions access

存取機密值

範例
                        gcloud secrets versions access latest --secret=my-secret
                      
使用 latest 取得最新版本,或指定版本號

監控與日誌 6

gcloud logging read 考試

讀取 Cloud Logging 日誌

範例
                        gcloud logging read 'resource.type="gce_instance" severity>=ERROR' --limit=20 --format=json
                      
重要 Flag
--limit 最多顯示的日誌筆數
--format 輸出格式
--freshness 時間範圍(如 1h, 1d)
--order 排序:asc / desc
使用 Logging Query Language 篩選日誌。常用篩選:resource.type、severity、textPayload
gcloud logging sinks create 考試

建立日誌匯出目的地

範例
                        gcloud logging sinks create my-sink bigquery.googleapis.com/projects/my-project/datasets/logs_dataset --log-filter='severity>=WARNING'
                      
重要 Flag
--log-filter 篩選要匯出的日誌
Log Sink 可把日誌導到 Cloud Storage(便宜長期保存)、BigQuery(分析)、Pub/Sub(串流)
gcloud monitoring dashboards create

建立 Cloud Monitoring 監控儀表板

範例
                        gcloud monitoring dashboards create --config-from-file=dashboard.json
                      
重要 Flag
--config-from-file 儀表板設定 JSON 檔案
通常在 Console UI 建立儀表板更方便,CLI 適合 IaC 自動化
gcloud monitoring channels create

建立告警通知頻道

範例
                        gcloud monitoring channels create --type=email --display-name='Ops Team Email' --channel-labels=email_address=ops@example.com
                      
重要 Flag
--type 頻道類型:email / slack / pagerduty / webhook 等
--display-name 頻道顯示名稱
告警通知頻道需要先建立,再在告警政策中引用
gcloud logging metrics create 考試

建立日誌指標

範例
                        gcloud logging metrics create error-count --description='Count of error logs' --log-filter='severity>=ERROR'
                      
重要 Flag
--log-filter 指標的日誌篩選條件
--description 指標描述
日誌指標可以把日誌轉化為可監控的指標,再用 Cloud Monitoring 設定告警
gcloud logging write

寫入自訂日誌條目

範例
                        gcloud logging write my-custom-log '{"message": "Deployment completed"}' --payload-type=json
                      
重要 Flag
--payload-type json 或 text
--severity 日誌等級
適合在 Shell Script 中記錄自訂事件到 Cloud Logging

實用技巧 8

--format=json / yaml / table / csv / value 考試

控制命令輸出格式

範例
                        gcloud compute instances list --format='table(name, zone.basename(), machineType.basename(), status)'
gcloud compute instances list --format=json
gcloud compute instances list --format='value(name)'
                      
value 格式只輸出值,適合腳本中提取資訊。table 格式可自訂欄位
--filter=EXPRESSION 考試

篩選命令輸出結果

範例
                        gcloud compute instances list --filter='name:web-* AND status=RUNNING'
gcloud compute instances list --filter='zone:(us-central1-a us-central1-b)'
gcloud projects list --filter='lifecycleState=ACTIVE'
                      
支援 AND / OR / NOT、萬用字元 *、括號分組等。服務端篩選比 grep 更有效率
--quiet (-q)

跳過所有互動確認提示

範例
                        gcloud compute instances delete my-vm --zone=us-central1-a --quiet
                      
腳本自動化必備 flag,避免指令卡在確認提示
gcloud config configurations 考試

多專案/多帳號切換管理

範例
                        gcloud config configurations create dev && gcloud config set project dev-project
gcloud config configurations create prod && gcloud config set project prod-project
gcloud config configurations activate dev
                      
管理多個 GCP 專案的最佳實踐。每個 configuration 有獨立的 project、account、region 設定
--impersonate-service-account 考試

模擬服務帳號執行命令

範例
                        gcloud compute instances list --impersonate-service-account=my-sa@my-project.iam.gserviceaccount.com
                      
不需要下載金鑰就能以服務帳號身分操作,安全性更高。需要你有 iam.serviceAccounts.getAccessToken 權限
gcloud compute project-info describe

查看專案的配額和預設值

範例
                        gcloud compute project-info describe --format='value(commonInstanceMetadata.items)'
                      
可查看專案層級的 metadata、SSH 金鑰、配額等資訊
gcloud auth print-access-token

取得目前帳號的 OAuth2 Access Token

範例
                        curl -H "Authorization: Bearer $(gcloud auth print-access-token)" https://storage.googleapis.com/...
                      
用於直接呼叫 Google API(搭配 curl),適合除錯和測試 API
gcloud beta / gcloud alpha

使用 Beta 或 Alpha 版本命令

範例
                        gcloud beta run deploy my-service --image=... --region=...
                      
新功能通常先在 alpha → beta → GA 階段發布。先安裝:gcloud components install beta

找不到符合的指令,試試其他關鍵字?

徽章解鎖!