examlab .net 用最有效率的方法,考取最有價值的證照
本篇導覽 約 18 分鐘

Cloud SDK 與啟用 API:掌握命令列

3,580 字 · 約 18 分鐘閱讀 ·

為 Associate Cloud Engineer (ACE) 考試提供 Google Cloud SDK (gcloud)、Cloud Shell 和 API 管理的全面指南。

立即做 20 題練習 → 免費 · 不用註冊 · ACE

理解 Google Cloud SDK 與 API 管理

身為一位 Associate Cloud Engineer,控制台 (Cloud Console) 只是起點。為了實現自動化、可重複的操作以及高效管理,你必須精通 Google Cloud SDK (gcloud) 和 Cloud Shell。此外,GCP 的所有服務都是透過 API 提供,因此理解如何啟用 API 以及管理資源配額 (Quotas) 是考題中的核心基礎。

Google Cloud SDK 是一套包含 gcloud、gsutil 和 bq 指令工具的集合。它讓你能從本地終端機或自動化腳本中直接操控 GCP 資源。

白話文解釋

我們可以使用以下類比來理解這些工具:

1. 廚房的點餐系統 (廚房類比)

  • API:就是廚房提供的菜單。如果你不點餐(啟用 API),廚師就不會幫你做菜(提供服務)。
  • Cloud SDK (gcloud):就是服務生。他負責把你的訂單(指令)傳達給廚房,並把結果帶回來給你。
  • 配額 (Quotas):廚房規定每個人每餐只能點 2 份牛排。這能防止你一次吃垮餐廳(防止帳單爆炸或系統過載)。

2. 遙控汽車 (瑞士刀類比)

  • Cloud Console (UI):就像是遙控器上的搖桿,直觀但有時候反應沒那麼快。
  • gcloud CLI:就像是編寫一串指令,讓車子自動跑完 100 公尺。
  • Cloud Shell:就像是 Google 直接借你一台已經裝好電池、預裝好所有遙控軟體的筆電,你不需要在自己的電腦裝任何東西就能開始控制。

3. 工地管理 (工地類比)

  • 初始化 SDK (gcloud init):就像是在進入工地前進行「實名制登記」,確定你的身分(帳號)和要去的工地編號(專案)。
  • 啟用 API:就像是打開工地的水電開關。沒開水電,工人(資源)就沒辦法開工。

開始使用 gcloud CLI

gcloud 是管理 GCP 服務的主力工具。

安裝與初始化

在本地端安裝好 SDK 後,第一步永遠是執行 'gcloud init'。這個指令會引導你完成:登入帳戶、選擇專案、選擇預設區域 (Region) 與可用區 (Zone)。 Source ↗

核心組件

  • gcloud: 管理大部分 GCP 服務(Compute Engine, IAM, GKE, SQL 等)。
  • gsutil: 專門管理 Cloud Storage。
  • bq: 專門管理 BigQuery。
  • kubectl: 雖然不是 Google 開發,但 SDK 包含它,用於管理 GKE 叢集。

掌握 Cloud Shell

Cloud Shell 是嵌入在控制台中的虛擬化環境。

Cloud Shell 預裝了所有重要的開發工具(SDK, git, docker, python, terraform 等),且提供 5GB 的永久家目錄空間。它是考試中最推薦的「即戰力」工具。 Source ↗

  • 臨時環境 (Ephemeral Environment): 每次啟動都是全新的 Debian VM,但你的 $HOME 目錄會保留。
  • 內建編輯器 (Built-in Editor): 類似 VS Code 的網頁版編輯器。
  • 網頁預覽 (Web Preview): 允許你在 Cloud Shell 執行網頁應用程式並在本地瀏覽器預覽。

啟用與管理 Google Cloud API

預設情況下,許多 API 是關閉的。

為什麼 API 會被停用?

Google 為了安全與節省資源,不會預設開啟所有 API。使用某項服務前,你必須先啟用它。

透過 CLI 管理 API

Service Usage API 負責管理專案內其他 API 的生命週期。 Source ↗

# 列出已啟用的 API
gcloud services list --enabled

# 搜尋特定 API(例如 Compute Engine)
gcloud services list --available | grep compute

# 啟用 API
gcloud services enable compute.googleapis.com

理解配額與限制 (Quotas and Limits)

配額 (Quotas) 是 Google 為了防止資源濫用和突發高額帳單而設定的限制。

配額類型

  1. 速率配額 (Rate Quotas):例如每分鐘允許呼叫 API 的次數(如 100 次/分)。這類配額會自動隨時間重置。
  2. 分配配額 (Allocation Quotas):例如一個專案內允許建立的 CPU 核心總數或磁碟大小。這類配額需要手動釋放資源或申請增加。

考試陷阱:如果你遇到「資源無法建立」的錯誤,且顯示「Quota exceeded (超出配額)」,不要去檢查 IAM 權限,而是要去 Quotas 頁面查看是否達到了上限。 Source ↗

申請增加配額

如果預設配額不夠(例如你需要 100 顆 CPU 但限制是 24 顆),你需要透過控制台提交申請。Google 通常會在 24-48 小時內審核。

配置環境

身為工程師,你需要頻繁切換專案或帳號。

gcloud 組態管理 (Configurations)

你可以建立多個 Configuration 組態,例如一個用於「開發」,一個用於「生產」。

# 建立新的組態
gcloud config configurations create prod-env

# 切換組態
gcloud config configurations activate default

設定預設值

設定預設專案:'gcloud config set project [PROJECT_ID]'。設定預設區域:'gcloud config set compute/region [REGION]'。 Source ↗

API 管理的 IAM 角色

要管理 API 和配額,你需要特定的 IAM 角色:

  • roles/serviceusage.serviceUsageAdmin:啟用/停用 API。
  • roles/servicemanagement.quotaAdmin:申請增加配額。

身分驗證:使用者帳號 vs. 服務帳號

ACE 情境若問「如何讓 CI/CD pipeline 透過 gcloud 進行身分驗證」,標準答案是 'gcloud auth activate-service-account' 搭配 service account JSON key——而不是需要瀏覽器互動的 'gcloud auth login'。若同一份 workload 跑在 Compute Engine VM 或 GKE node 上,請優先使用附掛在實例上的 service account,讓 Application Default Credentials (ADC) 自動解析憑證,避免把 JSON key 留在硬碟上。 Source ↗

Google Cloud client library 使用的憑證查找策略,依序檢查:(1) 環境變數 GOOGLE_APPLICATION_CREDENTIALS 指向的 service account JSON key、(2) 由 'gcloud auth application-default login' 設定的使用者憑證、(3) 透過 metadata server 取得宿主 GCE VM、GKE node、Cloud Run 或 Cloud Functions 上附掛的 service account。同一份程式碼因此可以在本地與 production 環境間無縫切換而不需要改 source code。 Source ↗

ACE 的常見 CLI 情境

  • 情境:你需要幫另一個同事設定他的 gcloud 環境。
    • 解決方案:讓他執行 gcloud auth login 登入他自己的 Google 帳號。
  • 情境:你發現執行 gcloud compute instances list 速度很慢。
    • 解決方案:執行 gcloud config set compute/region us-central1 設定預設區域,減少 CLI 去詢問所有區域的時間。

常見問題 (FAQ)

問:Cloud Shell 是免費的嗎? 答:是的,Cloud Shell 本身不收費。

問:如果我把 gcloud 預設專案設錯了會怎樣? 答:你的指令會作用在錯誤的專案上。執行重要修改前,建議先用 gcloud config get-value project 確認。

問:停用 API 會刪除我的資料嗎? 答:不會立即刪除資料,但你將無法存取該服務。如果長期停用,相關資源可能會被自動清理。

問:為什麼我的 gcloud 指令顯示 Command not found? 答:確保你已經將 SDK 的路徑加入了系統的 PATH 環境變數中。

問:什麼是 gcloud components? 答:這是 gcloud 的內部套件管理器。你可以用 gcloud components update 來更新工具,或用 gcloud components install [NAME] 安裝額外元件(如 beta 指令)。

ACE 總結清單

  • 知道 gcloud init 的作用。
  • 明白 gsutil 與 bq 的用途。
  • 了解 Cloud Shell 家目錄的持久性 (Persistent Home Directory)。
  • 知道如何查看與啟用 API (gcloud services list / enable)。
  • 理解速率配額 (Rate Quota) 與分配配額 (Allocation Quota) 的差異。

官方資料來源

更多 ACE 主題