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 是一套包含 gcloudgsutilbq 指令工具的集合。它讓你能從本地終端機或自動化腳本中直接操控 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 的作用。
  • 明白 gsutilbq 的用途。
  • 了解 Cloud Shell 家目錄的持久性 (Persistent Home Directory)。
  • 知道如何查看與啟用 API (gcloud services list / enable)。
  • 理解速率配額 (Rate Quota) 與分配配額 (Allocation Quota) 的差異。

官方資料來源

更多 ACE 主題