在 Cloud Code for VS Code 中管理 Cloud API 和 Cloud 用戶端程式庫

如要以程式輔助方式存取 Google Cloud 產品和服務,請使用 Cloud API。這些 API 提供簡單的 JSON REST 介面。建議使用 Cloud 用戶端程式庫存取 Cloud API。

Cloud Code 可讓您輕鬆將 Cloud API 和所用語言的 Cloud 用戶端程式庫新增至專案。在同一個檢視畫面中,您可以搜尋各個 API 的範例,並輕鬆將範例併入應用程式。

瀏覽 Cloud API

如要探索所有可用的 Google Cloud API,請按照下列步驟操作:

  1. 按一下 「Cloud Code」,然後展開「Cloud APIs」部分。

    「Cloud APIs」檢視畫面會依類別分組顯示 Cloud API。

  2. 如要查看 API 詳細資料,請按一下 API 名稱。系統會顯示服務名稱、狀態、用戶端程式庫的安裝說明、說明文件和程式碼範例等詳細資料。

啟用 Cloud API

如要使用 API 詳細資料頁面為專案啟用 Cloud API,請按照下列步驟操作:

  1. 在 Cloud API 詳細資料頁面中,選擇要啟用 Cloud API 的專案。
  2. 按一下「啟用 API」。API 啟用後,系統會顯示訊息,確認變更。

在專案中加入用戶端程式庫

除了使用 Cloud Code 探索及啟用 Cloud API,您還可以在專案中新增語言專屬的用戶端程式庫。

如要安裝用戶端程式庫,請按照 API 詳細資料頁面中您所用語言的操作說明進行。

使用 API 範例

您可以在 API 瀏覽器中搜尋及使用各個 API 的程式碼範例。

  1. 按一下 「Cloud Code」,然後展開「Cloud APIs」部分。

  2. 如要開啟詳細資料檢視畫面,請按一下 API 名稱。

  3. 如要查看 API 的程式碼範例,請按一下「程式碼範例」

  4. 如要篩選範例清單,請輸入文字進行搜尋,或從「語言」清單中選擇程式設計語言。

  5. 如要查看樣本,請按一下樣本名稱。您也可以選擇將範例複製到剪貼簿,或在 GitHub 中查看範例。

設定驗證

啟用必要 API 並新增必要的用戶端程式庫後,您必須設定應用程式,才能順利完成驗證。設定方式取決於開發類型和執行平台。

完成驗證步驟後,應用程式即可進行驗證,並準備好部署。

本機開發

本機電腦

如果您已登入 IDE,Cloud Code 會設定應用程式預設憑證 (ADC),因此可以跳過這個步驟。 Google Cloud 如果您在 IDE 外部登入 (例如使用 gcloud CLI),請設定 ADC,然後執行下列指令,讓 Google Cloud 用戶端程式庫透過 ADC 進行驗證: Google Cloud

gcloud auth login --update-adc

minikube

  1. 如果您已登入 IDE,Cloud Code 會設定應用程式預設憑證 (ADC),因此可以跳過這個步驟。 Google Cloud 如果您在 IDE 外部登入 (例如使用 gcloud CLI),請設定 ADC,然後執行下列指令,讓 Google Cloud 用戶端程式庫透過 ADC 進行驗證: Google Cloud

    gcloud auth login --update-adc
  2. 執行 minikube start --addons gcp-auth 啟動 minikube。 這項指令會在 Pod 中掛接 ADC。如要詳細瞭解如何使用 Google Cloud進行 minikube 驗證,請參閱 minikube gcp-auth 說明文件

其他本機 K8s 叢集

  1. 如果您已登入 IDE,Cloud Code 會設定應用程式預設憑證 (ADC),因此可以跳過這個步驟。 Google Cloud 如果您在 IDE 外部登入 (例如使用 gcloud CLI),請設定 ADC,然後執行下列指令,讓 Google Cloud 用戶端程式庫透過 ADC 進行驗證: Google Cloud

    gcloud auth login --update-adc
  2. 為確保 Google Cloud 用戶端程式庫可以找到您的憑證,請編輯部署資訊清單,在 Kubernetes Pod 中掛接本機 ~/.config/gcloud 目錄。
  3. 將 Google Cloud 專案 ID 設定為名為 GOOGLE_CLOUD_PROJECT 的環境變數。

Kubernetes Pod 設定範例:

apiVersion: v1
kind: Pod
metadata:
  name: my-app
  labels:
    name: my-app
spec:
  containers:
  - name: my-app
    image: gcr.io/google-containers/busybox
    ports:
      - containerPort: 8080
    env:
    - name: GOOGLE_CLOUD_PROJECT
      value: my-project-id
    volumeMounts:
      - mountPath: /root/.config/gcloud
        name: gcloud-volume
  volumes:
    - name: gcloud-volume
      hostPath:
        path: /path/to/home/.config/gcloud

Cloud Run

如果您已登入 IDE,Cloud Code 會設定應用程式預設憑證 (ADC),因此可以跳過這個步驟。 Google Cloud 如果您在 IDE 外部登入 (例如使用 gcloud CLI),請設定 ADC,然後執行下列指令,讓 Google Cloud 用戶端程式庫透過 ADC 進行驗證: Google Cloud

gcloud auth login --update-adc

使用需要服務帳戶的 API 進行本機開發

部分 API (例如 Cloud Translation API) 需要具備適當權限的服務帳戶,才能驗證要求。詳情請參閱「建立及管理服務帳戶」。如需使用服務帳戶的快速入門導覽課程,請參閱「在 Cloud Code 中使用 Cloud 用戶端程式庫」。

  1. 如要開啟終端機,請依序點選「Terminal」(終端機) >「New Terminal」(新增終端機)

  2. 建立服務帳戶來驗證 API 要求:

    gcloud iam service-accounts create \
    SERVICE_ACCOUNT_ID \
    --project PROJECT_ID

    替換下列值:

    • SERVICE_ACCOUNT_ID:服務帳戶 ID
    • PROJECT_ID:專案 ID

    如要找出這些 ID,請在 Google Cloud中點選畫面左上方的「導覽選單」,將指標懸停在「IAM 與管理」上,然後點選「服務帳戶」

    「電子郵件」欄會顯示每個服務帳戶的專屬 SERVICE_ACCOUNT_IDPROJECT_ID,格式如下:

    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com

    舉例來說,服務帳戶電子郵件地址 my-service-account@my-project.iam.gserviceaccount.com 具有下列值:

    • SERVICE_ACCOUNT_IDmy-service-account
    • PROJECT_IDmy-project
  3. 將適當的角色授予服務帳戶。下列範例指令會授予 Cloud Translation API 使用者角色。如要判斷要授予的角色,請參閱您使用的 Cloud API 說明文件。

    gcloud projects \
    add-iam-policy-binding \
    PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \
    --role='roles/cloudtranslate.user'
  4. 建立服務帳戶金鑰:

    gcloud iam service-accounts keys \
    create key.json --iam-account \
    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
  5. 將金鑰設為預設憑證:

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    
  6. 選用:如要允許使用者模擬服務帳戶身分,請執行 gcloud iam service-accounts add-iam-policy-binding 指令,授予使用者服務帳戶的「服務帳戶使用者」角色 (roles/iam.serviceAccountUser):

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"

    替換下列值:

    • USER_EMAIL:使用者的電子郵件地址

遠端開發

GKE

視專案範圍而定,您可以選擇在 GKE 上驗證服務的方式: Google Cloud

  • (僅限開發)
    1. 使用下列設定建立 GKE 叢集
      • 請確認您使用的是 GKE 預設使用的服務帳戶 (Compute Engine 預設服務帳戶),且「存取範圍」設為「允許所有 Cloud API 的完整存取權」(這兩項設定都位於「節點集區」>「安全性」部分)。由於節點上部署的所有工作負載都會共用 Compute Engine 服務帳戶,因此這個方法會過度佈建權限,只應用於開發作業。
      • 確認叢集未啟用 Workload Identity (位於「叢集」>「安全性」部分)。
    2. 將必要角色指派給服務帳戶:
      • 如要存取密鑰,請按照這篇文章的步驟,在服務帳戶中設定必要角色。
      • 如果您使用 Compute Engine 預設服務帳戶,系統可能已套用正確的 IAM 角色。
      • 如需可授予身分的 IAM 角色類型和預先定義角色清單,請參閱瞭解角色指南。 如需授予角色的步驟,請參閱「授予、變更及撤銷資源存取權」一文。
  • (建議用於正式版)
    1. 使用 Workload Identity 設定 GKE 叢集和應用程式,在 GKE 上驗證 Google Cloud 服務。這會將 Kubernetes 服務帳戶與 Google 服務帳戶建立關聯。
    2. 在 Kubernetes Deployment YAML 檔案中設定 .spec.serviceAccountName 欄位,將 Kubernetes Deployment 設為參照 Kubernetes 服務帳戶。如果您使用的應用程式是透過 Cloud Code 程式碼範例應用程式建立,這個檔案會位於 kubernetes-manifests 資料夾下方。
    3. 如果 Google Cloud 您嘗試存取的服務需要其他角色,請為您用來開發應用程式的 Google 服務帳戶授予這些角色:

Cloud Run

  1. 如要建立新的專屬服務帳戶來部署 Cloud Run 應用程式,請前往「服務帳戶」頁面,然後選取儲存密鑰的專案。

    前往「Service Accounts」(服務帳戶) 頁面

  2. 按一下「建立服務帳戶」
  3. 在「建立服務帳戶」對話方塊中,輸入服務帳戶的描述性名稱。
  4. 將「服務帳戶 ID」變更為可辨識的專屬值,然後按一下「建立」
  5. 如果嘗試存取的 Google Cloud 服務需要其他角色,請授予這些角色,然後依序按一下「繼續」和「完成」
  6. 如要將服務帳戶新增至部署設定,請按照下列步驟操作:
    1. 使用 Cloud Code 狀態列,選擇「Cloud Run: Deploy」(Cloud Run:部署) 指令。
    2. 在 Cloud Run 部署作業的使用者介面中,前往「修訂版本設定」下方的「服務帳戶」欄位,指定服務帳戶。
    Cloud Run 中展開的「進階修訂版本設定」專區:「部署」和「服務帳戶」欄位已填入服務帳戶名稱,格式為 service-account-name@project-name。iam.gserviceaccount.com

Cloud Run

視專案範圍而定,您可以選擇在 GKE 上驗證服務的方式: Google Cloud

  • (僅限開發)
    1. 建立 GKE 叢集,並使用下列設定:
      • 請確認您使用的是 GKE 預設使用的服務帳戶 (Compute Engine 預設服務帳戶),且「存取範圍」設為「允許所有 Cloud API 的完整存取權」(這兩項設定都位於「節點集區」>「安全性」部分)。由於 Compute Engine 服務帳戶是由部署在節點上的所有工作負載共用,因此這個方法會過度佈建權限,僅適用於開發作業。
      • 確認叢集未啟用 Workload Identity (位於「叢集」>「安全性」部分)。
    2. 將必要角色指派給服務帳戶:
  • (建議用於正式版)
    1. 使用 Workload Identity 設定 GKE 叢集和應用程式,在 GKE 上驗證 Google Cloud 服務。這會將 Kubernetes 服務帳戶與 Google 服務帳戶建立關聯。
    2. 如要將服務帳戶新增至部署設定,請按照下列步驟操作:
      1. 使用 Cloud Code 狀態列,選擇「Cloud Run: Deploy」(Cloud Run:部署) 指令。
      2. 在 Cloud Run 部署作業的使用者介面中,前往「修訂版本設定」下方的「服務帳戶」欄位,指定服務帳戶。
      Cloud Run 中展開的「進階修訂版本設定」部分:「部署」和「服務帳戶」欄位已填入 Kubernetes 服務帳戶名稱,格式為 service-account-name@project-name。iam.gserviceaccount.com
    3. 如果您要存取的 Google Cloud 服務需要其他角色,請將這些角色授予您用來開發應用程式的 Google 服務帳戶:

啟用 Secret Manager 權限的遠端開發

如果您是遠端開發,使用服務帳戶進行驗證,且應用程式使用密鑰,除了遠端開發操作說明,還需要完成幾個額外步驟。這些步驟會將必要角色指派給 Google 服務帳戶,以便存取特定 Secret Manager 密鑰:

  1. 按一下 「Cloud Code」,然後展開「Secret Manager」部分。

    Cloud Code 中的 Secret Manager 開啟,列出兩個密鑰

  2. 在密碼上按一下滑鼠右鍵,然後選取「Edit Permissions in Cloud console」(在 Cloud 控制台中編輯權限)。 這會在網頁瀏覽器中啟動該密鑰的 Secret Manager 設定頁面。

    在 Secret Manager 面板中按一下滑鼠右鍵選取的密鑰

  3. 在 Google Cloud 控制台中,依序點選「權限」和「新增」

  4. 在「新增主體」欄位中,輸入服務帳戶的名稱。

  5. 在「Select a role」(請選擇角色) 欄位中,選擇「Secret Manager Secret Accessor」(Secret Manager 密鑰存取者) 角色。

  6. 按一下 [儲存]

    您的服務帳戶現在有權存取這個特定密鑰。

取得支援

如要提供意見回饋,請前往 GitHub 回報問題,或在 Stack Overflow 上提問。