Google Cloud-Projekt für Vertex Pipelines konfigurieren

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.

  1. Erstellen Sie ein Google Cloud-Projekt und konfigurieren Sie es für die Verwendung mit Vertex AI Pipelines.

  2. 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.

    Es wird empfohlen, ein Dienstkonto zum Ausführen der Pipelines zu erstellen und diesem Konto detaillierte Berechtigungen für die Google Cloud-Ressourcen zu gewähren, die zum Ausführen der Pipeline erforderlich sind.

  3. 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.

  4. 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.

  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. Make sure 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. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. Update and install gcloud components:

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

    Go to project selector

  9. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the APIs

  11. Install the Google Cloud CLI.
  12. To initialize the gcloud CLI, run the following command:

    gcloud init
  13. 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.

    1. 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.

    2. 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.
    3. Sie können Artifact Registry zum Hosten von Container-Images und Kubeflow Pipelines-Vorlagen verwenden.

      Weitere Informationen zu Artifact Registry finden Sie in der Artifact Registry-Dokumentation.

    4. 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.
    5. 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.

    Enable the API

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.

  1. 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.

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

    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.

  2. Führen Sie folgenden Befehle aus, um Ihrem Dienstkonto Lese- und Schreibzugriff auf Pipelineartefakte in dem im vorherigen Schritt erstellten Bucket zu gewähren.

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

    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.

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

    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.

  1. Verwenden Sie Cloud Key Management Service, um einen vom Kunden verwalteten Verschlüsselungsschlüssel zu konfigurieren.

  2. 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"
        }
      }
    }