Bevor Sie Vertex AI-Pipelines zum Orchestrieren Ihrer (ML-)Pipelines verwenden können, müssen Sie Ihr Google Cloud-Projekt einrichten. Einige Ressourcen, darunter der von Vertex ML-Metadaten verwendete Metadatenspeicher, werden in Ihrem Google Cloud-Projekt erstellt, wenn Sie eine Pipeline zum ersten Mal ausführen.
Führen Sie die folgenden Schritte aus, um Ihr Projekt für Vertex AI Pipelines zu konfigurieren.
Wenn Sie kein Dienstkonto angeben, verwendet Vertex AI Pipelines das Compute Engine-Standarddienstkonto zum Ausführen Ihrer Pipelines. Weitere Informationen zum Compute Engine-Standarddienstkonto finden Sie unter Compute Engine-Standarddienstkonto verwenden.
Vertex AI Pipelines verwendet Cloud Storage, um die Artefakte Ihrer Pipelineausführungen zu speichern. Erstellen Sie einen Cloud Storage-Bucket und gewähren Sie Ihrem Dienstkonto Zugriff auf diesen Bucket.
Vertex AI Pipelines verwenden Vertex-ML-Metadaten, um die von Ihren Pipelineausführungen erstellten Metadaten zu speichern. Wenn Sie eine Pipeline zum ersten Mal ausführen und der Metadatenspeicher Ihres Projekts nicht vorhanden ist, erstellt Vertex AI den Metadatenspeicher Ihres Projekts.
Wenn Sie Ihre Daten mit einem vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) verschlüsseln möchten, können Sie manuell den Metadatenspeicher mit einem CMEK-Schlüssel erstellen, bevor Sie eine Pipeline ausführen. Wenn in Ihrem Projekt kein Standardmetadatenspeicher vorhanden ist, erstellt Vertex AI andernfalls den Metadatenspeicher Ihres Projekts mit dem CMEK-Schlüssel, der beim ersten Ausführen der Pipeline verwendet wurde. Nachdem der Metadatenspeicher erstellt wurde, verwendet er einen CMEK-Schlüssel, der sich von dem CMEK-Schlüssel unterscheidet, der in einer Pipelineausführung verwendet wurde.
Google Cloud-Projekt einrichten
Führen Sie die folgenden Schritte aus, um ein Google Cloud-Projekt zu erstellen und für die Verwendung mit Vertex AI Pipelines zu konfigurieren.
- 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 and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
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 and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta
Ein Dienstkonto mit detaillierten Berechtigungen konfigurieren
Wenn Sie eine Pipeline ausführen, können Sie ein Dienstkonto angeben. Die Pipelineausführung erfolgt mit den Berechtigungen dieses Dienstkontos.
Wenn Sie kein Dienstkonto angeben, verwendet die Pipelineausführung das Compute Engine-Standarddienstkonto. Weitere Informationen zum Compute Engine-Standarddienstkonto finden Sie unter Compute Engine-Standarddienstkonto verwenden.
Führen Sie die folgenden Schritte aus, um ein Dienstkonto zu erstellen und ihm detaillierte Berechtigungen für Google Cloud-Ressourcen zu gewähren.
Führen Sie folgenden Befehl aus, um ein Dienstkonto zu erstellen.
gcloud iam service-accounts create SERVICE_ACCOUNT_ID \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME" \ --project=PROJECT_ID
Ersetzen Sie die folgenden Werte:
- SERVICE_ACCOUNT_ID: Die ID für das Dienstkonto.
- DESCRIPTION: (Optional) Eine Beschreibung für das Dienstkonto.
- DISPLAY_NAME: Der Anzeigename für dieses Dienstkonto.
- PROJECT_ID: Das Projekt, in dem das Dienstkonto erstellt werden soll.
Weitere Informationen zum Erstellen eines Dienstkontos.
Gewähren Sie dem Dienstkonto Zugriff auf Vertex AI. Es kann einige Zeit dauern, bis die Zugriffsänderung wirksam wird. Weitere Informationen finden Sie unter Zugriffsänderungsverteilung.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"
Ersetzen Sie die folgenden Werte:
- PROJECT_ID: Das Projekt, in dem das Dienstkonto erstellt wurde.
- SERVICE_ACCOUNT_ID: Die ID für das Dienstkonto.
Sie können Artifact Registry verwenden, um Container-Images und Kubeflow Pipelines-Vorlagen zu hosten.
Weitere Informationen zu Artifact Registry finden Sie in der Dokumentation zu Artifact Registry.
Gewähren Sie dem Dienstkonto Zugriff auf alle Google Cloud-Ressourcen, die Sie in Ihren Pipelines verwenden.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Ersetzen Sie die folgenden Werte:
- PROJECT_ID: Das Projekt, in dem das Dienstkonto erstellt wurde.
- SERVICE_ACCOUNT_ID: Die ID für das Dienstkonto.
- ROLE_NAME: Die Rolle „Identitäts- und Zugriffsverwaltung“, die diesem Dienstkonto zugewiesen werden soll.
Wenn Sie mit Vertex AI Pipelines Pipelines mit diesem Dienstkonto ausführen möchten, weisen Sie dem Nutzerkonto mit dem folgenden Befehl die Rolle roles/iam.serviceAccountUser zu.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Ersetzen Sie die folgenden Werte:
- SERVICE_ACCOUNT_ID: Die ID für das Dienstkonto.
- PROJECT_ID: Das Projekt, in dem das Dienstkonto erstellt wurde.
- USER_EMAIL: Die E-Mail-Adresse des Nutzers, der Pipelines als dieses Dienstkonto ausführt.
Wenn Sie zum Ausführen Ihrer Pipelines das Compute Engine-Standarddienstkonto nutzen möchten, aktivieren Sie die Compute Engine API und gewähren Sie Ihrem Standarddienstkonto Zugriff auf Vertex AI. Es kann einige Zeit dauern, bis die Zugriffsänderung wirksam wird. Weitere Informationen finden Sie unter Zugriffsänderungsverteilung.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/aiplatform.user"
Ersetzen Sie die folgenden Werte:
- PROJECT_ID: Das Projekt, in dem das Standarddienstkonto erstellt wurde.
- PROJECT_NUMBER: Die Projektnummer, in dem das Standarddienstkonto erstellt wurde.
Cloud Storage-Bucket für Pipelineartefakte konfigurieren
Vertex AI Pipelines speichert die Artefakte Ihrer Pipeline, die Cloud Storage verwenden. Gehen Sie nach der folgenden Anleitung vor, um einen Cloud Storage-Bucket zu erstellen und Ihrem Dienstkonto (oder dem Compute Engine-Standarddienstkonto) Lese- und Schreibzugriff auf Objekte in diesem Bucket zu gewähren.
Führen Sie folgenden Befehl aus, um einen Cloud Storage-Bucket in der Region zu erstellen, in der Sie Ihre Pipelines ausführen möchten.
gsutil mb -p PROJECT_ID -l BUCKET_LOCATION gs://BUCKET_NAME
Ersetzen Sie die folgenden Werte:
- PROJECT_ID: Geben Sie das Projekt an, mit dem der Bucket verknüpft ist.
- BUCKET_LOCATION: Geben Sie den Standort Ihres Buckets an, z. B.
US-CENTRAL1
. - BUCKET_NAME: Der Name, den Sie Ihrem Bucket zuweisen möchten. Beachten Sie dabei die Benennungsanforderungen. Beispiel:
my-bucket
.
Weitere Informationen zum Erstellen von Cloud Storage-Buckets.
Führen Sie folgenden Befehle aus, um Ihrem Dienstkonto Lese- und Schreibzugriff auf Pipelineartefakte in dem im vorherigen Schritt erstellten Bucket zu gewähren.
gsutil iam ch \ serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com:roles/storage.objectCreator,objectViewer \ gs://BUCKET_NAME
Ersetzen Sie die folgenden Werte:
- SERVICE_ACCOUNT_ID: Die ID für das Dienstkonto.
- PROJECT_ID: Das Projekt, in dem das Dienstkonto erstellt wurde.
- BUCKET_NAME: Der Name des Buckets, auf den Sie Ihrem Dienstkonto Zugriff gewähren.
Wenn Sie das Compute Engine-Standarddienstkonto zum Ausführen Ihrer Pipelines verwenden möchten, führen Sie den Befehl
gcloud iam service-accounts list
aus, um die Projektnummer für dieses Konto zu ermitteln.gcloud iam service-accounts list
Das Compute Engine-Standarddienstkonto hat folgenden Namen:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Führen Sie den folgenden Befehl aus, um dem Compute Engine-Standarddienstkonto Lese- und Schreibzugriff für Pipelineartefakte im Bucket zu gewähren, den Sie im vorherigen Schritt erstellt haben.
gsutil iam ch \ serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com:roles/storage.objectCreator,objectViewer \ gs://BUCKET_NAME
Ersetzen Sie die folgenden Werte:
- PROJECT_NUMBER: Die Projektnummer für das Compute Engine-Standarddienstkonto.
- BUCKET_NAME: Der Name des Buckets, auf den Sie Ihrem Dienstkonto Zugriff gewähren.
Weitere Informationen zum Steuern des Zugriffs auf Cloud Storage-Buckets.
Metadatenspeicher erstellen, der einen CMEK nutzt (optional)
Führen Sie die folgenden Schritte aus, um einen CMEK zu erstellen und einen Vertex ML-Metadatenspeicher einzurichten, der diesen CMEK verwendet.
Verwenden Sie den folgenden REST-Aufruf, um den Standardmetadatenspeicher Ihres Projekts mithilfe des CMEK zu erstellen.
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- LOCATION_ID: Ihre Region.
- PROJECT_ID: Ihre Projekt-ID.
- KEY_RING: Der Name des Cloud Key Management Service-Schlüsselbunds, in dem sich Ihr Verschlüsselungsschlüssel befindet.
- KEY_NAME: Der Name des Verschlüsselungsschlüssels, den Sie für diesen Metadatenspeicher nutzen möchten.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores?metadata_store_id=default
JSON-Text anfordern:
{ "encryption_spec": { "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME" }, }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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" } } }