Passaggio 4: configura i componenti

Questa pagina descrive il quarto passaggio per eseguire il deployment di Cortex Framework Data Foundation, il nucleo di Cortex Framework. In questo passaggio, configurerai i servizi richiesti Google Cloud per il deployment.

Abilita Google Cloud servizi

In questa sezione abiliterai i seguenti Google Cloud servizi nel tuo Google Cloud progetto:

  • Istanza e set di dati BigQuery
  • API Cloud Build
  • Bucket Cloud Storage
  • Service account
  • API Resource Manager
  • Esecuzioni del flusso di lavoro (se esegui il deployment di Cortex per Meridian)
  • AI Platform (se esegui il deployment di Cortex per Meridian)

Abilita questi Google Cloud servizi utilizzando Cloud Shell:

  1. Copia e incolla il seguente comando:

    gcloud config set project SOURCE_PROJECT
    
    gcloud services enable bigquery.googleapis.com \
                          cloudbuild.googleapis.com \
                          composer.googleapis.com \
                          storage-component.googleapis.com \
                          cloudresourcemanager.googleapis.com \
                          dataflow.googleapis.com \
                          datacatalog.googleapis.com \
                          workflowexecutions.googleapis.com \
                          workflows.googleapis.com \
                          aiplatform.googleapis.com
    

    Sostituisci SOURCE_PROJECT con l'ID del progetto di origine.

  2. Verifica che Google Cloud i servizi siano abilitati se ricevi un messaggio di riuscita.

(Facoltativo) Puoi abilitare i seguenti Google Cloud servizi nel tuo Google Cloud progetto:

  • Managed Airflow per l'elaborazione di Change Data Capture (CDC), l'appiattimento della gerarchia (solo SAP), e la replica dei dati (solo non SAP) tramite grafici aciclici diretti (DAG). Per configurare un'istanza, consulta la documentazione di Managed Airflow.
  • Looker per la connessione ai modelli di report.
  • I set di dati collegati di BigQuery sharing (in precedenza Analytics Hub) vengono utilizzati per alcune origini esterne, ad esempio il DAG meteo. Puoi scegliere di compilare questa struttura con qualsiasi altra origine disponibile di tua scelta per scenari avanzati.
  • Dataflow: strumento di integrazione per molti set di dati di marketing come Google Ads.
  • Per Cortex Framework con Meridian:
    • Colab Enterprise: esecuzione del notebook Colab Enterprise durante l'esecuzione con accesso a quanto segue:
    • Il notebook e il file di configurazione in Cloud Storage.
    • Esegui query su viste e tabelle BigQuery pertinenti.
    • Scrivi i risultati di nuovo in Cloud Storage.
    • Workflows: esecuzione di Workflow e Cloud Build per attivare le esecuzioni dei notebook Colab Enterprise.

Crea e configura il account di servizio Cloud Build

Cloud Build utilizza un account di servizio per eseguire le build per tuo conto. Questa sezione ti guida nella creazione di un account di servizio dedicato per i deployment di Cortex Framework e nella concessione delle autorizzazioni necessarie al account di servizio Cloud Build.

Crea un nuovo account di servizio

Crea un account di servizio dedicato per il deployment di Cortex Framework per una maggiore sicurezza e controllo. Dopo aver creato il nuovo account di servizio puoi specificarlo service account durante la procedura di deployment utilizzando il parametro di sostituzione _BUILD_ACCOUNT.

Crea questo nuovo account di servizio utilizzando la Google Cloud console o Google Cloud CLI.

Console

  1. Vai alla pagina Service account.

    Service account

    I passaggi rimanenti vengono visualizzati nella Google Cloud console.

  2. Seleziona un Google Cloud progetto.

  3. Inserisci un account di servizio e un nome visualizzato, con descrizione e nella Google Cloud console. La Google Cloud console genera un ID account di servizio in base a questo nome. Modifica l'ID, se necessario. Non puoi modificare l'ID in un secondo momento. Utilizza i seguenti valori predefiniti per il account di servizio:

    • Nome: "cortex-deployer".
    • Descrizione: "Service account di deployment di Cortex".
    • Nome visualizzato: "Cortex Deployer".
  4. Concedi agli utenti l'accesso a questo account di servizio.

    1. Aggiungi l'ID di tutti gli utenti (incluso il tuo) che possono eseguire il deployment tramite il account di servizio.
    2. Assegna il ruolo Creatore token account di servizio. Per saperne di più su questo ruolo, consulta Ruoli dei service account.
  5. Fai clic su Fine per completare la creazione del account di servizio.

Se hai già un account di servizio, segui questi passaggi:

  1. Vai a Service account.
  2. Seleziona il service account.
  3. Fai clic sulla scheda Entità con accesso.
  4. Fai clic su Concedi l'accesso.
    1. Aggiungi l'ID di tutti gli utenti (incluso il tuo) che possono eseguire il deployment tramite il account di servizio.
    2. Assegna il ruolo Creatore token account di servizio.

gcloud

  1. Crea un account di servizio tramite un criterio IAM con il seguente comando:

    gcloud iam service-accounts create cortex-deployer \
    --description="Cortex Deployer Service Account" \
    --display-name="Cortex Deployer"
    
  2. Aggiungi il criterio IAM al tuo Google Cloud progetto con il seguente comando:

    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role="roles/cloudbuild.builds.editor"
    
  3. Aggiungi l'ID di tutti gli utenti (incluso il tuo) che possono eseguire il deployment tramite il service account e assegna loro il ruolo Creatore token account di servizio con il seguente comando:

    gcloud iam service-accounts add-iam-policy-binding cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com \
    --member="user:USER_EMAIL" \
    --role="roles/iam.serviceAccountTokenCreator"
    

    Sostituisci quanto segue:

    • SOURCE_PROJECT con il progetto di origine per il deployment di Cortex Framework Data Foundation.
    • USER_EMAIL con l'indirizzo email dell'utente che esegue l'operazione.

Per saperne di più sulla creazione di un nuovo account di servizio, consulta Creare un service account.

Concedi le autorizzazioni

Il account di servizio Cloud Build richiede autorizzazioni specifiche nel progetto di origine (e nel progetto di destinazione se esegui il deployment in un progetto separato). Concedi i seguenti ruoli utilizzando la Google Cloud console o Google Cloud CLI:

  • Account di servizio Cloud Build (roles/cloudbuild.builds.builder)
  • Utente service account (roles/iam.serviceAccountUser)
  • Editor dati BigQuery (roles/bigquery.dataEditor)
  • Utente job BigQuery (roles/bigquery.jobUser)
  • Writer log (roles/logging.logWriter)
  • Amministratore Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin - se esegui il deployment di Cortex per Meridian)
  • Utente oggetti Storage (roles/storage.objectUser - se esegui il deployment di Cortex per Meridian)
  • Editor flussi di lavoro (roles/workflows.editor - se esegui il deployment di Cortex per Meridian)

Console

  1. Nella Google Cloud console vai alla pagina IAM.

    Vai a IAM

  2. Seleziona il progetto di origine.

  3. Fai clic su Concedi l'accesso.

  4. Aggiungi il account di servizio Cloud Build predefinito del passaggio precedente come nuova entità.

  5. Dal menu a discesa Seleziona un ruolo, cerca Service account Cloud Build, quindi fai clic su Service account Cloud Build.

  6. Ripeti il passaggio precedente per aggiungere gli altri ruoli:

    • Utente service account
    • Editor dati BigQuery
    • Utente job BigQuery
    • Writer log
    • Amministratore Colab Enterprise (se esegui il deployment di Cortex per Meridian)
    • Utente oggetti Storage (se esegui il deployment di Cortex per Meridian)
    • Editor flussi di lavoro (se esegui il deployment di Cortex per Meridian)
  7. Fai clic su Salva.

  8. Verifica che il account di servizio e i ruoli corrispondenti siano elencati nella pagina IAM. Hai assegnato correttamente un ruolo IAM.

gcloud

Utilizza il seguente comando per concedere i ruoli al account di servizio Cloud Build:

  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/cloudbuild.builds.builder"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/iam.serviceAccountUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/bigquery.dataEditor"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/bigquery.jobUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/logging.logWriter"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/aiplatform.colabEnterpriseAdmin"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/storage.objectUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/workflows.editor"

Sostituisci quanto segue:

  • SOURCE_PROJECT con l'ID progetto di origine.
  • CLOUD_BUILD_SA con il account di servizio Cloud Build, nel formato CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com.

Per saperne di più, consulta Concedere un ruolo al account di servizio Cloud Build utilizzando la pagina IAM e Impostare e gestire i criteri IAM sui bucket.

Crea un account di servizio aggiuntivo per Cortex per Meridian

Per Meridian è necessario un account di servizio separato quando esegui il deployment di Cortex Framework. Se non esegui il deployment per Meridian, puoi saltare questo passaggio. È necessario un account di servizio separato per quanto segue:

  • Esecuzione di Workflow e Cloud Build per attivare le esecuzioni dei notebook Colab Enterprise.
  • Esecuzione del notebook Colab Enterprise con accesso a:
    • Notebook e file di configurazione in Cloud Storage.
    • Esecuzione di query su viste e tabelle BigQuery pertinenti.
    • Scrittura dei risultati di nuovo in Cloud Storage.

Utilizza il seguente comando per creare un account di servizio per Cortex per Meridian:


 gcloud iam service-accounts create cortex-meridian-colab-runner --project=SOURCE_PROJECT \
        --description="Cortex for Meridian Colab Runner Service Account" \
        --display-name="Cortex Meridian Runner"

Sostituisci quanto segue:

  • SOURCE_PROJECT con l'ID progetto in cui è stato eseguito il deployment di Cortex per Meridian.
  • cortex-meridian-colab-runner: facoltativamente, puoi utilizzare un ID account di servizio diverso. Tieni presente che cortex-meridian-colab-runner è il valore predefinito e la sua modifica potrebbe richiedere modifiche ad altri comandi.

I ruoli minimi richiesti per un account di servizio dedicato per Cortex per Meridian sono i seguenti:

  • Visualizzatore dati BigQuery (roles/bigquery.dataViewer)
  • Utente job BigQuery (roles/bigquery.jobUser)
  • Utente sessione di lettura BigQuery (roles/bigquery.readSessionUser)
  • Editor Cloud Build (roles/cloudbuild.builds.editor)
  • Amministratore Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin)
  • Writer log (roles/logging.logWriter)
  • Amministratore runtime notebook (aiplatform.notebookRuntimeAdmin)
  • Amministratore Storage (roles/storage.admin)
  • Utente oggetti Storage (roles/storage.objectUser)
  • Service agent Colab Vertex AI (roles/aiplatform.colabServiceAgent)

Utilizza il seguente comando per concedere i ruoli al account di servizio dedicato per Cortex per Meridian:

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.dataViewer'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.jobUser'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.readSessionUser'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/cloudbuild.builds.editor'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.colabEnterpriseAdmin'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/logging.logWriter'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.notebookRuntimeAdmin'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/storage.admin'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/storage.objectUser'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.colabServiceAgent'

Sostituisci quanto segue:

  • SOURCE_PROJECT con l'ID progetto in cui è stato eseguito il deployment di Cortex per Meridian.
  • cortex-meridian-colab-runner con il tuo service account per Cortex per Meridian.

È necessario un bucket di archiviazione per archiviare gli script DAG di elaborazione e altri file temporanei generati durante il deployment. Questi script devono essere spostati manualmente in un'istanza di Managed Airflow o Apache Airflow dopo il deployment.

Puoi creare il bucket di archiviazione da Google Cloud CLI o dalla Google Cloud console seguendo questi passaggi.

Console

  1. Vai a Cloud Storage.

    Cloud Storage

  2. Crea un bucket nella stessa regione dei set di dati BigQuery.

  3. Seleziona il bucket creato.

  4. Vai alla scheda Permissions (Autorizzazioni).

  5. Concedi l'autorizzazione Storage Object Creator all'ID utente che esegue il comando Build o al service account che hai creato. Per saperne di più, consulta Impostare una nuova condizione su un bucket: console.

gcloud

  1. Crea un bucket da Cloud Shell con il seguente comando:

    gcloud storage buckets create gs://COMPOSER_DAG_BUCKET -l REGION/MULTI_REGION
    

    Sostituisci quanto segue:

    • COMPOSER_DAG_BUCKET con il nome del nuovo bucket.
    • REGION/MULTI_REGION con la stessa regione dei set di dati BigQuery.
  2. Utilizza il seguente comando per assegnare l'autorizzazione Storage Object Creator (Creatore oggetti Storage) al account di servizio:

    gcloud storage buckets add-iam-policy-binding gs://COMPOSER_DAG_BUCKET \
        --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
        --role=roles/storage.objectCreator
    

    Sostituisci quanto segue:

    • cortex-deployer con il account di servizio Cloud Build.
    • COMPOSER_DAG_BUCKET con il nome del nuovo bucket.

Crea un bucket Storage per i log

Puoi creare un bucket specifico per il processo Cloud Build per archiviare i log. Questa opzione è utile se vuoi limitare i dati che possono essere archiviati nei log a una regione specifica. Puoi creare il bucket di archiviazione per i log da Google Cloud CLI o dalla console. Google Cloud

Console

Per creare un bucket specifico per i log, segui questi passaggi:

  1. Vai a Cloud Storage.

    Cloud Storage

  2. Crea un bucket nella stessa regione in cui verrà eseguito il deployment.

  3. Seleziona il bucket creato.

  4. Vai alla scheda Permissions (Autorizzazioni).

  5. Concedi l'autorizzazione Storage Object Admin all'ID utente che esegue il comando Build o al service account che hai creato. Per saperne di più, consulta Impostare una nuova condizione su un bucket: console.

gcloud

Per creare un bucket specifico per i log, utilizza i seguenti comandi.

  1. Crea un bucket da Cloud Shell con il seguente comando:

    gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION
    

    Sostituisci quanto segue:

    • REGION/MULTI_REGION con la regione scelta per creare il bucket.
    • LOGS_BUCKET_NAME con il nome del nuovo bucket.
  2. Utilizza il seguente comando per assegnare l'autorizzazione Storage Object Admin (Amministratore oggetti Storage) al account di servizio:

    gcloud storage buckets add-iam-policy-binding gs://LOGS_BUCKET_NAME \
        --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
        --role=roles/storage.objectAdmin
    

    Sostituisci quanto segue:

    • cortex-deployer con il account di servizio predefinito di Cloud Build.
    • LOGS_BUCKET_NAME con il nome del nuovo bucket.

Passaggi successivi

Dopo aver completato questo passaggio, procedi con i seguenti passaggi di deployment:

  1. Stabilisci i carichi di lavoro.
  2. Clona il repository.
  3. Determina il meccanismo di integrazione.
  4. Configura i componenti (questa pagina).
  5. Configura il deployment.
  6. Esegui il deployment.