在 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 API」部分。

    Cloud API 檢視畫面會依類別將 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 API」部分。

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

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

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

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

設定驗證

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

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

本機開發

本機電腦

如果您已在 IDE 中登入 Google Cloud ,Cloud Code 會設定應用程式預設憑證 (ADC),因此您可以略過這個步驟。如果您在 IDE 外 (例如使用 gcloud CLI) 登入 Google Cloud,請設定 ADC,並讓 Google Cloud 用戶端程式庫透過 ADC 進行驗證,方法如下:

gcloud auth login --update-adc

minikube

  1. 如果您已在 IDE 中登入 Google Cloud ,Cloud Code 會設定應用程式預設憑證 (ADC),因此您可以略過這個步驟。如果您是透過 IDE 以外的管道 (例如使用 gcloud CLI) 登入 Google Cloud,請設定 ADC,並讓 Google Cloud 用戶端程式庫透過 ADC 進行驗證,方法如下:

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

其他本機 K8s 叢集

  1. 如果您已在 IDE 中登入 Google Cloud ,Cloud Code 會設定應用程式預設憑證 (ADC),因此您可以略過這個步驟。如果您是透過 IDE 以外的管道 (例如使用 gcloud CLI) 登入 Google Cloud,請設定 ADC,並讓 Google Cloud 用戶端程式庫透過 ADC 進行驗證,方法如下:

    gcloud auth login --update-adc
  2. 為確保 Google Cloud 用戶端程式庫可以找到您的憑證,請編輯部署資訊清單,在 Kubernetes 容器中掛載本機 ~/.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 中登入 Google Cloud ,Cloud Code 會設定應用程式預設憑證 (ADC),因此您可以略過這個步驟。如果您是透過 IDE 以外的管道 (例如使用 gcloud CLI) 登入 Google Cloud,請設定 ADC,並讓 Google Cloud 用戶端程式庫透過 ADC 進行驗證,方法如下:

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 預設服務帳戶),且「Access scopes」(存取權範圍) 已設為「Allow full access to all Cloud APIs」(允許所有 Cloud API 的完整存取權) (這兩項設定均可在「Node Pools」>「Security」部分找到)。由於 Compute Engine 服務帳戶會由部署在節點上的所有工作負載共用,因此這個方法會過度配置權限,因此應僅用於開發。
      • 請確認叢集未啟用 Workload Identity (在「叢集」>「安全性」部分)。
    2. 將必要角色指派給服務帳戶:
      • 如果您嘗試存取密鑰,請按照 Secret Manager 專屬步驟設定服務帳戶的必要角色。
      • 如果您使用的是 Compute Engine 預設服務帳戶,系統可能已套用正確的 IAM 角色。
      • 如需身分與存取權管理 (IAM) 角色類型和可授予身分的預先定義角色清單,請參閱「瞭解角色指南」。如需授予角色的步驟,請參閱「授予、變更及撤銷資源存取權」一文。
  • (正式版建議使用)
    1. 使用 Workload Identity 設定 GKE 叢集和應用程式,以便驗證 GKE 上的 Google Cloud 服務。這樣一來,您的 Kubernetes 服務帳戶就會與 Google 服務帳戶建立關聯。
    2. 在 Kubernetes 部署作業 YAML 檔案中設定 .spec.serviceAccountName 欄位,即可將 Kubernetes 部署作業設定為參照 Kubernetes 服務帳戶。如果您要處理從 Cloud Code 範例應用程式建立的應用程式,這個檔案會位於 kubernetes-manifests 資料夾下。
    3. 如果您嘗試存取的 Google Cloud 服務需要其他角色,請為您用於開發應用程式的 Google 服務帳戶授予這些角色:

Cloud Run

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

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

  2. 按一下「建立服務帳戶」
  3. 在「Create service account」對話方塊中,輸入服務帳戶的描述性名稱。
  4. 將「服務帳戶 ID」變更為您可以辨識的專屬值,然後按一下「建立」
  5. 如果您嘗試存取的 Google Cloud 服務需要其他角色,請授予這些角色,然後按一下「Continue」(繼續) 和「Done」(完成)
  6. 如要將服務帳戶新增至部署設定,請按照下列步驟操作:
    1. 使用 Cloud Code 狀態列,選擇「Cloud Run: Deploy」指令。
    2. 在 Cloud Run 部署 UI 的「修訂版本設定」下方的「服務帳戶」欄位中,指定服務帳戶。
    在 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. 將必要角色指派給服務帳戶:
      • 如果您嘗試存取密鑰,請按照這些 Secret Manager 專屬步驟,在服務帳戶中設定必要的角色。
      • 如果您使用的是 Compute Engine 預設服務帳戶,系統可能已套用正確的 IAM 角色。
      • 如需身分與存取權管理 (IAM) 角色類型和可授予身分的預先定義角色清單,請參閱瞭解角色指南。如需授予角色的步驟,請參閱「授予、變更及撤銷資源存取權」。
  • (正式版建議使用)
    1. 使用 Workload Identity 設定 GKE 叢集和應用程式,以便驗證 GKE 上的 Google Cloud 服務。這樣一來,您的 Kubernetes 服務帳戶就會與 Google 服務帳戶建立關聯。
    2. 如要將服務帳戶新增至部署設定,請按照下列步驟操作:
      1. 使用 Cloud Code 狀態列,選擇「Cloud Run: Deploy」指令。
      2. 在 Cloud Run 部署 UI 的「修訂版本設定」下方的「服務帳戶」欄位中,指定服務帳戶。
      在 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. 在機密金鑰上按一下滑鼠右鍵,然後選取「在 Cloud 控制台中編輯權限」。這樣系統就會在網路瀏覽器中啟動該機密金鑰的 Secret Manager 設定頁面。

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

  3. 在 Google Cloud 控制台中,依序按一下「權限」和「新增」

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

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

  6. 按一下 [儲存]

    您的服務帳戶現在具備存取這個特定機密金鑰的權限。

取得支援

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