Configurare il progetto Google Cloud per Vertex AI Pipelines

Prima di utilizzare Vertex AI Pipelines per orchestrare il machine learning (ML), devi configurare il progetto Google Cloud. Alcune risorse, come il repository dei metadati utilizzato da Vertex ML Metadata, vengono create nel progetto Google Cloud la prima volta che esegui una pipeline.

Usa le seguenti istruzioni per configurare il tuo progetto per Vertex AI Pipelines.

  1. Crea il tuo progetto Google Cloud e configuralo per l'utilizzo con Vertex AI Pipelines.

  2. Se non specifichi un account di servizio, Vertex AI Pipelines utilizza l'account di servizio predefinito di Compute Engine per eseguire le pipeline. Per ulteriori informazioni sull'account di servizio predefinito di Compute Engine, consulta Utilizzo dell'account di servizio predefinito di Compute Engine.

    Ti consigliamo di creare un account di servizio per eseguire le pipeline concedi quindi a questo account autorizzazioni granulari alle risorse Google Cloud necessari per eseguire la pipeline.

  3. Vertex AI Pipelines utilizza Cloud Storage per archiviare gli artefatti delle esecuzioni della pipeline. Crea un bucket Cloud Storage e concedi al tuo account di servizio l'accesso a questo bucket.

  4. Vertex AI Pipelines utilizza Vertex ML Metadata per archiviare dei metadati creati dalle esecuzioni della pipeline. Quando esegui una pipeline per la prima volta, se l'archivio dei metadati del progetto non esiste, Vertex AI lo crea.

    Se vuoi che i tuoi dati vengano criptati utilizzando una chiave di crittografia gestita dal cliente (CMEK), puoi creare manualmente l'archivio di metadati utilizzando una chiave CMEK prima di eseguire una pipeline. Altrimenti, Se nel tuo progetto non esiste un archivio di metadati predefinito, Vertex AI crea l'archivio di metadati del progetto utilizzando Chiave CMEK utilizzata quando esegui la pipeline per la prima volta. Dopo il l'archivio di metadati, utilizza una chiave CMEK diversa dalla chiave CMEK usata nell'esecuzione della pipeline.

Configurare il progetto Google Cloud

Segui queste istruzioni per creare un progetto Google Cloud e configurarlo per l'uso con Vertex AI Pipelines.

  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

Configura un account di servizio con autorizzazioni granulari

Quando esegui una pipeline, puoi specificare un account di servizio. L'esecuzione della pipeline avviene con le autorizzazioni di questo account di servizio.

Se non specifichi un account di servizio, l'esecuzione della pipeline utilizza la classe Account di servizio predefinito di Compute Engine. Per ulteriori informazioni sull'account di servizio predefinito di Compute Engine, consulta Utilizzo dell'account di servizio predefinito di Compute Engine.

  • Segui queste istruzioni per creare un account di servizio e concederlo autorizzazioni granulari alle risorse Google Cloud.

    1. Esegui il seguente comando per creare un account di servizio.

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

      Sostituisci i seguenti valori:

      • SERVICE_ACCOUNT_ID: l'ID dell'account di servizio.
      • DESCRIPTION: (facoltativo) Una descrizione del servizio .
      • DISPLAY_NAME: il nome visualizzato per questo account di servizio.
      • PROJECT_ID: il progetto per creare l'account di servizio in.

      Scopri di più sulla creazione di un account di servizio.

    2. Concedi al tuo account di servizio l'accesso a Vertex AI. Tieni presente che la propagazione delle modifiche dell'accesso potrebbe richiedere un po' di tempo. Per scoprire di più, consulta Propagazione della modifica di accesso.

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

      Sostituisci i seguenti valori:

      • PROJECT_ID: il progetto in cui era il tuo account di servizio in cui è stato creato.
      • SERVICE_ACCOUNT_ID: l'ID dell'account di servizio.
    3. Puoi utilizzare Artifact Registry per ospitare immagini container e modelli Kubeflow Pipelines.

      Per saperne di più su Artifact Registry, consulta la documentazione di Artifact Registry.

    4. Concedi al tuo account di servizio l'accesso a tutte le risorse Google Cloud che utilizzi nelle tue pipeline.

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

      Sostituisci i seguenti valori:

      • PROJECT_ID: il progetto in cui era il tuo account di servizio in cui è stato creato.
      • SERVICE_ACCOUNT_ID: l'ID dell'account di servizio.
      • ROLE_NAME: il ruolo Identity and Access Management da concedere a questo l'account di servizio.
    5. Per utilizzare Vertex AI Pipelines per eseguire pipeline con questo account di servizio, esegui questo comando per concedere al tuo account utente il ruolo roles/iam.serviceAccountUser per il tuo account di servizio.

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

      Sostituisci i seguenti valori:

      • SERVICE_ACCOUNT_ID: l'ID dell'account di servizio.
      • PROJECT_ID: il progetto in cui era il tuo account di servizio in cui è stato creato.
      • USER_EMAIL: l'indirizzo email dell'utente che esegue le pipeline come questo account di servizio.
  • Se preferisci utilizzare l'account di servizio predefinito di Compute Engine per eseguire le tue pipeline, abilita l'API Compute Engine e concedi l'accesso predefinito all'account di servizio a Vertex AI. Tieni presente che la propagazione delle modifiche dell'accesso potrebbe richiedere un po' di tempo. Per scoprire di più, consulta Propagazione della modifica di accesso.

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

    Sostituisci i seguenti valori:

    • PROJECT_ID: il progetto in cui era il tuo account di servizio predefinito in cui è stato creato.
    • PROJECT_NUMBER: il numero del progetto in cui è stato creato il tuo account servizio predefinito.

    Enable the API

Configura un bucket Cloud Storage per gli artefatti della pipeline

Vertex AI Pipelines archivia gli artefatti delle esecuzioni della pipeline utilizzando Cloud Storage. Segui queste istruzioni per creare un nel bucket Cloud Storage e concedi al tuo account di servizio (o all'account di servizio predefinito di Compute Engine) l'accesso in lettura e scrivere oggetti nel bucket.

  1. Esegui questo comando per creare un bucket Cloud Storage nella in cui vuoi eseguire le pipeline.

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

    Sostituisci i seguenti valori:

    • PROJECT_ID: specifica il progetto a cui è associato il bucket.
    • BUCKET_LOCATION: specifica la posizione del tuo bucket, ad esempio US-CENTRAL1.
    • BUCKET_NAME: il nome che vuoi assegnare al bucket, soggetto ai requisiti di denominazione. Ad esempio, my-bucket.

    Scopri di più sulla creazione di bucket Cloud Storage.

  2. Esegui i seguenti comandi per concedere all'account di servizio l'accesso in lettura e scrittura agli elementi della pipeline nel bucket creato nel passaggio precedente.

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

    Sostituisci i seguenti valori:

    • SERVICE_ACCOUNT_ID: l'ID dell'account di servizio.
    • PROJECT_ID: il progetto in cui è stato creato il tuo account di servizio.
    • BUCKET_NAME: il nome del bucket a cui stai concedendo l'accesso al tuo account di servizio.

    In alternativa, se preferisci usare l'account di servizio predefinito di Compute Engine per eseguire le pipeline, esegui il comando gcloud iam service-accounts list per individuare il numero del progetto per quell'account.

    gcloud iam service-accounts list
    

    L'account di servizio predefinito di Compute Engine è denominato come segue: PROJECT_NUMBER-compute@developer.gserviceaccount.com.

    Esegui il seguente comando per concedere all'account di servizio predefinito di Compute Engine l'accesso in lettura e scrittura agli elementi della pipeline nel bucket creato nel passaggio precedente.

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

    Sostituisci i seguenti valori:

    • PROJECT_NUMBER: il numero del progetto per l'account di servizio predefinito Compute Engine.
    • BUCKET_NAME: il nome del bucket a cui stai concedendo l'accesso al tuo account di servizio.

    Scopri di più su come controllare l'accesso a Cloud Storage bucket.

Crea un archivio di metadati che utilizza un CMEK (facoltativo)

Segui le istruzioni riportate di seguito per creare un CMEK e configurare un archivo di metadati Vertex ML Metadata che utilizzi questo CMEK.

  1. Utilizza Cloud Key Management Service per configurare una chiave di crittografia gestita dal cliente.

  2. Usa la seguente chiamata REST per creare l'archivio di metadati predefinito del progetto usando la tua CMEK.

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • LOCATION_ID: la tua regione.
    • PROJECT_ID: il tuo ID progetto.
    • KEY_RING: il nome del portachiavi Cloud Key Management Service su cui si trova la chiave di crittografia.
    • KEY_NAME: il nome della chiave di crittografia che vuoi utilizzare per questi metadati. .

    Metodo HTTP e URL:

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

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

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