Configurer votre projet Google Cloud pour Vertex AI Pipelines

Avant d'utiliser Vertex AI Pipelines pour orchestrer vos pipelines de machine learning (ML), vous devez configurer votre projet Google Cloud. Certaines ressources, telles que le magasin de métadonnées utilisé par Vertex ML Metadata, sont créées dans votre projet Google Cloud la première fois que vous exécutez un pipeline.

Suivez les instructions ci-dessous pour configurer votre projet pour Vertex AI Pipelines.

  1. Créez votre projet Google Cloud et configurez-le pour une utilisation avec Vertex AI Pipelines.

  2. Si vous ne spécifiez pas de compte de service, Vertex AI Pipelines utilise le compte de service Compute Engine par défaut pour exécuter vos pipelines. Pour plus d'informations sur le compte de service par défaut de Compute Engine, consultez la section Utiliser le compte de service par défaut de Compute Engine.

    Nous vous recommandons de créer un compte de service pour exécuter vos pipelines, puis d'accorder à ce compte des autorisations précises sur les ressources Google Cloud nécessaires à l'exécution de votre pipeline.

  3. Vertex AI Pipelines stocke les artefacts de vos exécutions de pipeline à l'aide de Cloud Storage. Créez un bucket Cloud Storage et accordez à votre compte de service l'accès à ce bucket.

  4. Vertex AI Pipelines utilise Vertex ML Metadata pour stocker les métadonnées créées par vos exécutions de pipeline. Lorsque vous exécutez un pipeline pour la première fois, si le magasin de métadonnées de votre projet n'existe pas, Vertex AI le crée.

    Si vous souhaitez que vos données soient chiffrées à l'aide d'une clé de chiffrement gérée par le client (CMEK), vous pouvez créer manuellement votre magasin de métadonnées à l'aide d'une clé CMEK avant d'exécuter un pipeline. Sinon, s'il n'existe aucun magasin de métadonnées par défaut dans votre projet, Vertex AI crée le magasin de métadonnées de votre projet à l'aide de la clé CMEK utilisée lors de la première exécution du pipeline. Une fois le magasin de métadonnées créé, il utilise une clé CMEK différente de celle utilisée dans une exécution de pipeline.

Configurer un projet Google Cloud

Suivez les instructions ci-dessous pour créer un projet Google Cloud et le configurer pour l'utiliser avec Vertex AI Pipelines.

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activer les API Vertex AI and Cloud Storage.

    Activer les API

  5. Installez Google Cloud CLI.
  6. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  7. Mettez à jour et installez les composants gcloud :
    gcloud components update
    gcloud components install beta
  8. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  9. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  10. Activer les API Vertex AI and Cloud Storage.

    Activer les API

  11. Installez Google Cloud CLI.
  12. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  13. Mettez à jour et installez les composants gcloud :
    gcloud components update
    gcloud components install beta

Configurer un compte de service avec des autorisations précises

Lorsque vous exécutez un pipeline, vous pouvez spécifier un compte de service. L'exécution de votre pipeline agit avec les autorisations de ce compte de service.

Si vous ne spécifiez pas de compte de service, l'exécution du pipeline utilise le compte de service par défaut de Compute Engine. Pour plus d'informations sur le compte de service par défaut de Compute Engine, consultez la section Utiliser le compte de service par défaut de Compute Engine.

  • Suivez les instructions ci-dessous pour créer un compte de service et lui accorder des autorisations précises pour les ressources Google Cloud.

    1. Exécutez la commande suivante pour créer un compte de service.

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

      Remplacez les valeurs suivantes :

      • SERVICE_ACCOUNT_ID : ID du compte de service.
      • DESCRIPTION : facultatif. Description du compte de service.
      • DISPLAY_NAME : nom à afficher pour ce compte de service.
      • PROJECT_ID : projet dans lequel créer votre compte de service.

      Découvrez comment créer un compte de service.

    2. Accordez à votre compte de service l'accès à Vertex AI. Notez que la propagation de la modification d'accès peut prendre un certain temps. Pour en savoir plus, consultez la page Propagation du changement d'accès.

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

      Remplacez les valeurs suivantes :

      • PROJECT_ID : projet dans lequel votre compte de service a été créé.
      • SERVICE_ACCOUNT_ID : ID du compte de service.
    3. Vous pouvez utiliser Artifact Registry pour héberger des images de conteneurs et des modèles Kubeflow Pipelines.

      Pour en savoir plus sur Artifact Registry, consultez la documentation d'Artifact Registry.

    4. Accordez à votre compte de service l'accès à toutes les ressources Google Cloud que vous utilisez dans vos pipelines.

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

      Remplacez les valeurs suivantes :

      • PROJECT_ID : projet dans lequel votre compte de service a été créé.
      • SERVICE_ACCOUNT_ID : ID du compte de service.
      • ROLE_NAME : rôle IAM (Identity and Access Management) à accorder à ce compte de service.
    5. Pour utiliser Vertex AI Pipelines afin d'exécuter des pipelines avec ce compte de service, exécutez la commande suivante afin d'accorder à votre compte utilisateur le rôle roles/iam.serviceAccountUser pour votre compte de service.

      gcloud iam service-accounts add-iam-policy-binding \
          SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
          --member="user:USER_EMAIL" \
          --role="roles/iam.serviceAccountUser"
      

      Remplacez les valeurs suivantes :

      • SERVICE_ACCOUNT_ID : ID du compte de service.
      • PROJECT_ID : projet dans lequel votre compte de service a été créé.
      • USER_EMAIL : adresse e-mail de l'utilisateur qui exécute les pipelines en tant que compte de service.
  • Si vous préférez utiliser le compte de service Compute Engine par défaut pour exécuter vos pipelines, activez l'API Compute Engine et accordez à votre compte de service par défaut l'accès à Vertex AI. Notez que la propagation de la modification d'accès peut prendre un certain temps. Pour en savoir plus, consultez la page Propagation du changement d'accès.

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

    Remplacez les valeurs suivantes :

    • PROJECT_ID : projet dans lequel votre compte de service par défaut a été créé.
    • PROJECT_NUMBER : numéro du projet dans lequel votre compte de service par défaut a été créé.

    Activer l'API

Configurer un bucket Cloud Storage pour les artefacts de pipeline

Vertex AI Pipelines stocke les artefacts des exécutions de votre pipeline à l'aide de Cloud Storage. Suivez les instructions ci-dessous pour créer un bucket Cloud Storage et accorder à votre compte de service (ou au compte de service Compute Engine par défaut) l'accès en lecture et en écriture aux objets qu'il contient.

  1. Exécutez la commande suivante pour créer un bucket Cloud Storage dans la région dans laquelle vous souhaitez exécuter vos pipelines.

    gsutil mb -p PROJECT_ID -l BUCKET_LOCATION gs://BUCKET_NAME
    

    Remplacez les valeurs suivantes :

    • PROJECT_ID : spécifiez le projet auquel le bucket est associé.
    • BUCKET_LOCATION : spécifiez l'emplacement de votre bucket (par exemple, US-CENTRAL1).
    • BUCKET_NAME est le nom que vous souhaitez attribuer à votre bucket, soumis aux règles de dénomination. Exemple : my-bucket.

    Découvrez comment créer des buckets Cloud Storage.

  2. Exécutez les commandes suivantes pour autoriser votre compte de service à accéder en lecture et en écriture aux artefacts de pipeline dans le bucket que vous avez créé à l'étape précédente.

    gsutil iam ch \
    serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com:roles/storage.objectCreator,objectViewer \
    gs://BUCKET_NAME
    

    Remplacez les valeurs suivantes :

    • SERVICE_ACCOUNT_ID : ID du compte de service.
    • PROJECT_ID : projet dans lequel votre compte de service a été créé.
    • BUCKET_NAME : nom du bucket auquel vous accordez l'accès à votre compte de service.

    Si vous préférez utiliser le compte de service Compute Engine par défaut pour exécuter vos pipelines, exécutez la commande gcloud iam service-accounts list pour localiser le numéro de projet de ce compte.

    gcloud iam service-accounts list
    

    Le compte de service Compute Engine par défaut est nommé comme suit : PROJECT_NUMBER-compute@developer.gserviceaccount.com.

    Exécutez la commande suivante pour accorder au compte de service Compute Engine par défaut l'accès en lecture et en écriture aux artefacts de pipeline dans le bucket que vous avez créé à l'étape précédente.

    gsutil iam ch \
    serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com:roles/storage.objectCreator,objectViewer \
    gs://BUCKET_NAME
    

    Remplacez les valeurs suivantes :

    • PROJECT_NUMBER : numéro du projet du compte de service Compute Engine par défaut.
    • BUCKET_NAME : nom du bucket auquel vous accordez l'accès à votre compte de service.

    Apprenez-en plus sur le contrôle des accès aux buckets Cloud Storage.

Créer un magasin de métadonnées utilisant une clé CMEK (facultatif)

Suivez les instructions ci-dessous pour créer une clé CMEK et configurer un magasin de métadonnées Vertex ML Metadata utilisant cette clé CMEK.

  1. Utilisez Cloud Key Management Service pour configurer une clé de chiffrement gérée par le client.

  2. Utilisez l'appel REST suivant pour créer le magasin de métadonnées par défaut de votre projet à l'aide de votre clé CMEK.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • LOCATION_ID : votre région.
    • PROJECT_ID : l'ID de votre projet.
    • KEY_RING : nom du trousseau de clés Cloud Key Management Service sur lequel votre clé de chiffrement est activée.
    • KEY_NAME : nom de la clé de chiffrement que vous souhaitez utiliser pour ce magasin de métadonnées.

    Méthode HTTP et URL :

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

    Corps JSON de la requête :

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

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    {
      "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"
        }
      }
    }