為 Vertex AI Pipelines 設定 Google Cloud 專案

使用 Vertex AI Pipelines 自動化調度管理機器學習 (ML) 管道前,請先設定 Google Cloud 專案。首次執行管道時,系統會在Google Cloud 專案中建立部分資源,例如 Vertex 機器學習中繼資料使用的中繼資料儲存庫。

請按照下列操作說明,為 Vertex AI Pipelines 設定專案。

  1. 建立專案並設定,以便搭配 Vertex AI Pipelines 使用。 Google Cloud

  2. 如未指定服務帳戶,Vertex AI Pipelines 會使用 Compute Engine 預設服務帳戶執行管道。如要進一步瞭解 Compute Engine 預設服務帳戶,請參閱「使用 Compute Engine 預設服務帳戶」。

    建議您建立服務帳戶來執行管道,然後授予這個帳戶執行管道所需的 Google Cloud 資源細部權限。

  3. Vertex AI Pipelines 會使用 Cloud Storage 儲存管道執行的構件。建立 Cloud Storage bucket,並將這個 bucket 的存取權授予您的服務帳戶

  4. Vertex AI Pipelines 會使用 Vertex 機器學習中繼資料,儲存管道執行作業建立的中繼資料。首次執行管道時,如果專案的中繼資料儲存庫不存在,Vertex AI 會建立專案的中繼資料儲存庫。

    如要使用客戶自行管理的加密金鑰 (CMEK) 加密資料,請先使用 CMEK 金鑰手動建立中繼資料存放區,再執行管道。否則,如果專案中沒有現有的預設中繼資料儲存庫,Vertex AI 會使用您首次執行管道時使用的 CMEK 金鑰,建立專案的中繼資料儲存庫。中繼資料存放區建立完成後,會使用與管道執行作業所用 CMEK 金鑰不同的 CMEK 金鑰。

設定您的 Google Cloud 專案

請按照下列操作說明建立專案,並設定專案以搭配 Vertex AI Pipelines 使用。 Google Cloud

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  7. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  8. 初始化 gcloud CLI 後,請更新並安裝必要元件:

    gcloud components update
    gcloud components install beta
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.

    Enable the APIs

  12. Install the Google Cloud CLI.

  13. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  14. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  15. 初始化 gcloud CLI 後,請更新並安裝必要元件:

    gcloud components update
    gcloud components install beta
  16. 設定具備精細權限的服務帳戶

    執行管道時,您可以指定服務帳戶。您的 pipeline 執行作業會使用這個服務帳戶的權限。

    如未指定服務帳戶,管道執行作業會使用 Compute Engine 預設服務帳戶。如要進一步瞭解 Compute Engine 預設服務帳戶,請參閱「使用 Compute Engine 預設服務帳戶」。

    • 請按照下列操作說明建立服務帳戶,並授予 Google Cloud 資源的精細權限。

      1. 執行下列指令來建立服務帳戶。

        gcloud iam service-accounts create SERVICE_ACCOUNT_ID \
            --description="DESCRIPTION" \
            --display-name="DISPLAY_NAME" \
            --project=PROJECT_ID
        

        替換下列值:

        • SERVICE_ACCOUNT_ID:服務帳戶的 ID。
        • DESCRIPTION:(選用)。服務帳戶的說明。
        • DISPLAY_NAME:這個服務帳戶的顯示名稱。
        • PROJECT_ID:要在其中建立服務帳戶的專案。

        進一步瞭解如何建立服務帳戶

      2. 授予服務帳戶 Vertex AI 的存取權。 請注意,存取權變更可能需要一段時間才會生效。 詳情請參閱「存取權變更傳播」。

        gcloud projects add-iam-policy-binding PROJECT_ID \
            --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
            --role="roles/aiplatform.user"
        

        替換下列值:

        • PROJECT_ID:服務帳戶的建立專案。
        • SERVICE_ACCOUNT_ID:服務帳戶的 ID。
      3. 您可以使用 Artifact Registry 託管容器映像檔和 Kubeflow Pipelines 範本。

        如要進一步瞭解 Artifact Registry,請參閱 Artifact Registry 說明文件

      4. 授予服務帳戶存取管道中使用的任何 Google Cloud 資源。

        gcloud projects add-iam-policy-binding PROJECT_ID \
            --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
            --role="ROLE_NAME"
        

        替換下列值:

        • PROJECT_ID:服務帳戶的建立專案。
        • SERVICE_ACCOUNT_ID:服務帳戶的 ID。
        • ROLE_NAME:要授予這個服務帳戶的 Identity and Access Management 角色。
      5. 如要使用 Vertex AI Pipelines 透過這個服務帳戶執行 pipeline,請執行下列指令,為服務帳戶授予使用者帳戶 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"
        

        替換下列值:

        • SERVICE_ACCOUNT_ID:服務帳戶的 ID。
        • PROJECT_ID:服務帳戶的建立專案。
        • USER_EMAIL:以這個服務帳戶身分執行管道的使用者電子郵件地址。
    • 如果您偏好使用 Compute Engine 預設服務帳戶執行管道,請啟用 Compute Engine API,並授予預設服務帳戶 Vertex AI 的存取權。請注意,存取權變更可能需要一段時間才會生效。 詳情請參閱「存取權變更傳播」。

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
          --role="roles/aiplatform.user"
      

      替換下列值:

      • PROJECT_ID:建立預設服務帳戶的專案。
      • PROJECT_NUMBER:建立預設服務帳戶的專案編號。

    • Enable the Vertex AI, Compute Engine, and Cloud Storage API.

      Enable the API

    設定管道構件的 Cloud Storage bucket

    Vertex AI Pipelines 會使用 Cloud Storage 儲存管道執行的構件。請按照下列操作說明建立 Cloud Storage 值區,並授予服務帳戶 (或 Compute Engine 預設服務帳戶) 讀取及寫入該值區中物件的權限。

    1. 執行下列指令,在要執行管道的區域中建立 Cloud Storage bucket。

      gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --project=PROJECT_ID
      

      替換下列值:

      • PROJECT_ID:指定值區所屬的專案。
      • BUCKET_LOCATION:指定值區的位置,例如 US-CENTRAL1
      • BUCKET_NAME:您要授予 bucket 的名稱,必須遵守命名要求。例如:my-bucket

      進一步瞭解如何建立 Cloud Storage bucket

    2. 執行下列指令,授予服務帳戶權限,以便讀取及寫入您在上一個步驟中建立的 bucket 內管道構件。

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
      --role=roles/storage.objectUser
      

      替換下列值:

      • SERVICE_ACCOUNT_ID:服務帳戶的 ID。
      • PROJECT_ID:服務帳戶的建立專案。
      • BUCKET_NAME:您要授予服務帳戶存取權的 bucket 名稱。

      或者,如果您偏好使用 Compute Engine 預設服務帳戶執行管道,請執行 gcloud iam service-accounts list 指令,找出該帳戶的專案編號。

      gcloud iam service-accounts list
      

      Compute Engine 預設服務帳戶的名稱類似於 PROJECT_NUMBER-compute@developer.gserviceaccount.com

      執行下列指令,授予 Compute Engine 預設服務帳戶權限,以便讀取及寫入您在上一個步驟建立的 bucket 中的管道構件。

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/storage.objectUser
      

      替換下列值:

      • PROJECT_NUMBER:Compute Engine 預設服務帳戶的專案編號。
      • BUCKET_NAME:您要授予服務帳戶存取權的 bucket 名稱。

      進一步瞭解如何控管 Cloud Storage bucket 的存取權

    建立使用 CMEK 的中繼資料儲存庫 (選用)

    請按照下列操作說明建立 CMEK,並設定使用這個 CMEK 的 Vertex ML Metadata 中繼資料儲存庫。

    1. 使用 Cloud Key Management Service 設定客戶管理的加密金鑰。

    2. 使用下列 REST 呼叫,透過 CMEK 建立專案的預設中繼資料存放區。

      使用任何要求資料之前,請先替換以下項目:

      • LOCATION_ID:您的區域。
      • PROJECT_ID:您的專案 ID
      • KEY_RING:加密金鑰所在的 Cloud Key Management Service 金鑰環名稱。
      • KEY_NAME:您要用於這個中繼資料商店的加密金鑰名稱。

      HTTP 方法和網址:

      POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores?metadata_store_id=default

      JSON 要求主體:

      {
        "encryption_spec": {
          "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
        },
      }
      

      如要傳送要求,請展開以下其中一個選項:

      您應該會收到如下的 JSON 回應:

      {
        "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATIONS_ID",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateMetadataStoreOperationMetadata",
          "genericMetadata": {
            "createTime": "2021-05-18T18:47:14.494997Z",
            "updateTime": "2021-05-18T18:47:14.494997Z"
          }
        }
      }