您必須先設定 Google Cloud 專案,才能使用 Vertex AI Pipelines 自動化調度管理機器學習 (ML) 管道。有些資源 (例如 Vertex ML 中繼資料所使用的中繼資料儲存庫) 會在您第一次執行管道時,在Google Cloud 專案中建立。
請按照下列操作說明,為 Vertex AI Pipelines 設定專案。
如果您未指定服務帳戶,Vertex AI Pipelines 會使用 Compute Engine 預設服務帳戶執行管道。如要進一步瞭解 Compute Engine 的預設服務帳戶,請參閱「使用 Compute Engine 預設服務帳戶」。
Vertex AI Pipelines 會使用 Cloud Storage 儲存管道執行作業的構件。建立 Cloud Storage 值區,並將這個值區的存取權授予服務帳戶。
Vertex AI Pipelines 會使用 Vertex ML 中繼資料,儲存管道執行作業所建立的中繼資料。首次執行管道時,如果專案的中繼資料儲存庫不存在,Vertex AI 會建立專案的中繼資料儲存庫。
如果您想使用客戶自行管理的加密金鑰 (CMEK) 加密資料,請在執行管道之前,手動使用 CMEK 金鑰建立中繼資料儲存庫。否則,如果專案中沒有現有的預設中繼資料儲存庫,Vertex AI 會使用您首次執行管道時使用的 CMK 鍵,建立專案的中繼資料儲存庫。建立中繼資料儲存庫後,它會使用與管道執行作業中使用的 CMEK 金鑰不同的 CMEK 金鑰。
設定您的 Google Cloud 專案
請按照下列操作說明建立 Google Cloud 專案,並將其設定為與 Vertex AI Pipelines 搭配使用。
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install beta
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install beta
請按照以下操作說明建立服務帳戶,並授予該帳戶對 Google Cloud 資源的精細權限。
執行下列指令建立服務帳戶。
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:建立服務帳戶的專案。
進一步瞭解如何建立服務帳戶。
授予服務帳戶 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。
您可以使用 Artifact Registry 代管容器映像檔和 Kubeflow Pipelines 範本。
如要進一步瞭解 Artifact Registry,請參閱 Artifact Registry 說明文件。
授予服務帳戶存取權,以便存取您在管道中使用的任何 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 角色。
如要使用 Vertex AI Pipelines 透過這個服務帳戶執行管道,請執行下列指令,為您的使用者帳戶授予服務帳戶的 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:預設服務帳戶建立所在的專案編號。
執行下列指令,在要執行管道的區域中建立 Cloud Storage 值區。
gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --project=PROJECT_ID
替換下列值:
- PROJECT_ID:指定值區的關聯專案。
- BUCKET_LOCATION:指定值區的位置,例如
US-CENTRAL1
。 - BUCKET_NAME:您要授予值區的名稱,必須遵守命名規定。例如:
my-bucket
。
進一步瞭解如何建立 Cloud Storage 值區。
執行下列指令,授予服務帳戶在先前步驟中建立的儲存桶中讀取及寫入管道成果的權限。
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:您要授予服務帳戶存取權的值區名稱。
或者,如果您想使用 Compute Engine 預設服務帳戶執行管道,請執行
gcloud iam service-accounts list
指令,找出該帳戶的專案編號。gcloud iam service-accounts list
Compute Engine 預設服務帳戶的名稱如下:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
。執行下列指令,授予 Compute Engine 預設服務帳戶存取權,以便在先前步驟中建立的值區中讀取及寫入管道成果物。
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:您要授予服務帳戶存取權的值區名稱。
進一步瞭解如何控管 Cloud Storage 值區的存取權。
請使用下列 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" } } }
設定具備精細權限的服務帳戶
執行管道時,您可以指定服務帳戶。管道執行作業會使用此服務帳戶的權限。
如果未指定服務帳戶,管道執行作業會使用 Compute Engine 預設服務帳戶。如要進一步瞭解 Compute Engine 的預設服務帳戶,請參閱「使用 Compute Engine 預設服務帳戶」。
為管道構件設定 Cloud Storage 值區
Vertex AI Pipelines 會使用 Cloud Storage 儲存管道執行作業的構件。請按照下列操作說明建立 Cloud Storage 值區,並授予服務帳戶 (或 Compute Engine 預設服務帳戶) 存取權,以便讀取及寫入該值區中的物件。
建立使用 CMEK 的中繼資料儲存庫 (選用)
請按照下列操作說明建立 CMEK,並設定使用此 CMEK 的 Vertex ML 中繼資料中繼資料儲存庫。