Étape 4 : Configurer les composants

Cette page décrit la quatrième étape du déploiement de Cortex Framework Data Foundation, le cœur de Cortex Framework. Au cours de cette étape, vous configurez les services requis Google Cloud pour le déploiement.

Activer les services Google Cloud

Dans cette section, vous activez les services suivants dans votre Google Cloud projet : Google Cloud

  • Instance et ensembles de données BigQuery
  • API Cloud Build
  • Buckets Cloud Storage
  • Compte de service
  • API Cloud Resource Manager
  • Exécutions de workflow (si vous déployez Cortex pour Meridian)
  • AI Platform (si vous déployez Cortex pour Meridian)

Activez ces Google Cloud services à l'aide de Cloud Shell :

  1. Copiez et collez la commande suivante :

    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
    

    Remplacez SOURCE_PROJECT par l'ID de votre projet source.

  2. Vérifiez que Google Cloud les services sont activés si vous recevez un message de confirmation.

Facultatif. Vous pouvez activer les services suivants dans votre Google Cloud projet : Google Cloud

  • Managed Airflow pour le traitement de la capture de données modifiées (CDC), l'aplatissement de la hiérarchie (SAP uniquement), et la réplication des données (non-SAP uniquement) via des graphes acycliques orientés (DAG). Pour configurer une instance, consultez la documentation Managed Airflow.
  • Looker pour la connexion aux modèles de rapports.
  • Les ensembles de données associés à BigQuery Sharing (anciennement Analytics Hub) linked datasets sont utilisés pour certaines sources externes, telles que le DAG météo. Vous pouvez choisir de remplir cette structure avec n'importe quelle autre source disponible de votre choix pour les scénarios avancés.
  • Dataflow: outil d'intégration pour de nombreux ensembles de données marketing, tels que Google Ads.
  • Pour Cortex Framework avec Meridian :
    • Colab Enterprise : exécution du notebook Colab Enterprise pendant l'exécution et accès aux éléments suivants :
    • Le notebook et le fichier de configuration dans Cloud Storage.
    • Interroger les vues et les tables BigQuery pertinentes.
    • Réécrire les résultats dans Cloud Storage.
    • Workflows : exécution du workflow et de Cloud Build pour déclencher les exécutions de notebooks Colab Enterprise.

Créer et configurer le compte de service Cloud Build

Cloud Build utilise un compte de service pour exécuter des compilations en votre nom. Cette section vous explique comment créer un compte de service dédié pour les déploiements Cortex Framework et comment accorder les autorisations nécessaires au compte de service Cloud Build.

Créer un compte de service

Créez un compte de service dédié pour déployer Cortex Framework afin d'améliorer la sécurité et le contrôle. Après avoir créé le compte de service vous pouvez le spécifier lors du processus de déploiement à l'aide du _BUILD_ACCOUNT paramètre de substitution.

Créez ce compte de service à l'aide de la Google Cloud console ou de Google Cloud CLI.

Console

  1. Accédez à la page Comptes de service.

    Comptes de service

    Les étapes restantes s'affichent dans la Google Cloud console.

  2. Sélectionnez un Google Cloud projet.

  3. Saisissez un compte de service et un nom à afficher, avec une description et dans la Google Cloud console. La Google Cloud console génère un ID de compte de service basé sur ce nom. Modifiez l'ID si nécessaire. Vous ne pourrez plus le modifier ultérieurement. Utilisez les valeurs par défaut suivantes pour le compte de service :

    • Nom : "cortex-deployer".
    • Description : "Compte de service Cortex Deployer".
    • Nom à afficher : "Cortex Deployer".
  4. Autorisez les utilisateurs à accéder à ce compte de service.

    1. Ajoutez l'ID de tous les utilisateurs (y compris le vôtre) qui peuvent exécuter le déploiement via le compte de service.
    2. Attribuez le rôle Créateur de jetons du compte de service. Pour en savoir plus sur ce rôle, consultez Rôles des comptes de service.
  5. Cliquez sur OK pour terminer la création du compte de service.

Si vous disposez déjà d'un compte de service, procédez comme suit :

  1. Accédez à Comptes de service.
  2. Sélectionnez le compte de service.
  3. Cliquez sur l'onglet Comptes principaux avec accès.
  4. Cliquez sur Accorder l'accès.
    1. Ajoutez l'ID de tous les utilisateurs (y compris le vôtre) qui peuvent exécuter le déploiement via le compte de service.
    2. Attribuez le rôle Créateur de jetons du compte de service.

gcloud

  1. Créez un compte de service via une stratégie IAM avec la commande suivante :

    gcloud iam service-accounts create cortex-deployer \
    --description="Cortex Deployer Service Account" \
    --display-name="Cortex Deployer"
    
  2. Ajoutez la stratégie IAM à votre Google Cloud projet avec la commande suivante :

    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role="roles/cloudbuild.builds.editor"
    
  3. Ajoutez l'ID de tous les utilisateurs (y compris le vôtre) qui peuvent exécuter le déploiement via le compte de service, et attribuez-leur le rôle Créateur de jetons du compte de service avec la commande suivante :

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

    Remplacez les éléments suivants :

    • SOURCE_PROJECT par le projet source pour le déploiement de Cortex Framework Data Foundation.
    • USER_EMAIL par l'adresse e-mail de l'utilisateur exécutant l'opération.

Pour en savoir plus sur la création d'un compte de service, consultez Créer un compte de service.

Accorder des autorisations

Le compte de service Cloud Build a besoin d'autorisations spécifiques dans votre projet source (et dans le projet cible si vous effectuez un déploiement dans un projet distinct). Attribuez les rôles suivants à l'aide de la Google Cloud console ou de Google Cloud CLI :

  • Compte de service Cloud Build (roles/cloudbuild.builds.builder)
  • Utilisateur du compte de service (roles/iam.serviceAccountUser)
  • Éditeur de données BigQuery (roles/bigquery.dataEditor)
  • Utilisateur de job BigQuery (roles/bigquery.jobUser)
  • Rédacteur de journaux (roles/logging.logWriter)
  • Administrateur Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin : si vous déployez Cortex pour Meridian)
  • Utilisateur d'objets de l'espace de stockage (roles/storage.objectUser : si vous déployez Cortex pour Meridian)
  • Éditeur de workflows (roles/workflows.editor : si vous déployez Cortex pour Meridian)

Console

  1. Dans la Google Cloud console, accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez votre projet source.

  3. Cliquez sur Accorder l'accès.

  4. Ajoutez le compte de service Cloud Build par défaut de l'étape précédente en tant que compte principal.

  5. Dans le menu déroulant Sélectionner un rôle, recherchez Compte de service Cloud Build, puis cliquez sur Compte de service Cloud Build.

  6. Répétez l'étape précédente pour ajouter le reste des rôles :

    • Utilisateur du compte de service
    • Éditeur de données BigQuery
    • Utilisateur de job BigQuery
    • Rédacteur de journaux
    • Administrateur Colab Enterprise (si vous déployez Cortex pour Meridian)
    • Utilisateur d'objets de l'espace de stockage (si vous déployez Cortex pour Meridian)
    • Éditeur de workflows (si vous déployez Cortex pour Meridian)
  7. Cliquez sur Enregistrer.

  8. Vérifiez que le compte de service et les rôles correspondants sont listés sur la page IAM. Vous avez attribué un rôle IAM.

gcloud

Utilisez la commande suivante pour attribuer les rôles au compte de service 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"

Remplacez les éléments suivants :

  • SOURCE_PROJECT par l'ID du projet source.
  • CLOUD_BUILD_SA par le compte de service Cloud Build, au format CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com.

Pour en savoir plus, consultez Attribuer un rôle au compte de service Cloud Build à l'aide de la page IAM et Définir et gérer des stratégies IAM sur des buckets.

Créer un compte de service supplémentaire pour Cortex pour Meridian

Un compte de service distinct est nécessaire pour Meridian lors du déploiement de Cortex Framework. Si vous n'effectuez pas de déploiement pour Meridian, vous pouvez ignorer cette étape. Un compte de service distinct est requis pour les éléments suivants :

  • Exécution du workflow et de Cloud Build pour déclencher les exécutions de notebooks Colab Enterprise.
  • Exécution du notebook Colab Enterprise avec accès aux éléments suivants :
    • Notebook et fichier de configuration dans Cloud Storage.
    • Interrogation des vues et des tables BigQuery pertinentes.
    • Réécriture des résultats dans Cloud Storage.

Utilisez la commande suivante pour créer un compte de service pour Cortex pour 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"

Remplacez les éléments suivants :

  • SOURCE_PROJECT par l'ID du projet dans lequel Cortex pour Meridian est déployé.
  • cortex-meridian-colab-runner: vous pouvez également utiliser un autre ID de compte de service. Notez que cortex-meridian-colab-runner est la valeur par défaut, et que sa modification peut nécessiter des ajustements dans d'autres commandes.

Les rôles minimaux requis pour un compte de service dédié pour Cortex pour Meridian sont les suivants :

  • Lecteur de données BigQuery (roles/bigquery.dataViewer)
  • Utilisateur de job BigQuery (roles/bigquery.jobUser)
  • Utilisateur de sessions de lecture BigQuery (roles/bigquery.readSessionUser)
  • Éditeur Cloud Build (roles/cloudbuild.builds.editor)
  • Administrateur Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin)
  • Rédacteur de journaux (roles/logging.logWriter)
  • Administrateur de l'environnement d'exécution de notebook (aiplatform.notebookRuntimeAdmin)
  • Administrateur de l'espace de stockage (roles/storage.admin)
  • Utilisateur d'objets de l'espace de stockage (roles/storage.objectUser)
  • Agent de service Vertex AI Colab (roles/aiplatform.colabServiceAgent)

Utilisez la commande suivante pour attribuer les rôles au compte de service dédié pour Cortex pour 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'

Remplacez les éléments suivants :

  • SOURCE_PROJECT par l'ID du projet dans lequel Cortex pour Meridian est déployé.
  • cortex-meridian-colab-runner par votre compte de service pour Cortex pour Meridian.

Un bucket de stockage est nécessaire pour stocker les scripts DAG de traitement et d'autres fichiers temporaires générés lors du déploiement. Ces scripts doivent être déplacés manuellement dans une instance Managed Airflow ou Apache Airflow après le déploiement.

Vous pouvez créer le bucket de stockage à partir de Google Cloud CLI ou Google Cloud de la console en procédant comme suit.

Console

  1. Accédez à Cloud Storage.

    Cloud Storage

  2. Créez un bucket dans la même région que vos ensembles de données BigQuery.

  3. Sélectionnez le bucket créé.

  4. Accédez à l'onglet Permissions.

  5. Accordez l'autorisation Storage Object Creator à l'ID utilisateur qui exécute la commande Build ou au compte de service que vous avez créé. Pour en savoir plus, consultez Définir une condition sur un bucket : console.

gcloud

  1. Créez un bucket à partir de Cloud Shell avec la commande suivante :

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

    Remplacez les éléments suivants :

    • COMPOSER_DAG_BUCKET par le nom du nouveau bucket.
    • REGION/MULTI_REGION par la même région que vos ensembles de données BigQuery.
  2. Utilisez la commande suivante pour attribuer l'autorisation Storage Object Creator au compte de service :

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

    Remplacez les éléments suivants :

    • cortex-deployer par le compte de service Cloud Build.
    • COMPOSER_DAG_BUCKET par le nom du nouveau bucket.

Créer un bucket de stockage pour les journaux

Vous pouvez créer un bucket spécifique pour que le processus Cloud Build stocke les journaux. Cela est utile si vous souhaitez limiter les données pouvant être stockées dans les journaux à une région spécifique. Vous pouvez créer le bucket de stockage pour les journaux à partir de Google Cloud CLI ou de la console. Google Cloud

Console

Pour créer un bucket spécifique pour les journaux, procédez comme suit :

  1. Accédez à Cloud Storage.

    Cloud Storage

  2. Créez un bucket dans la même région que celle où le déploiement s'exécutera.

  3. Sélectionnez le bucket créé.

  4. Accédez à l'onglet Permissions.

  5. Accordez l'autorisation Storage Object Admin à l'ID utilisateur qui exécute la commande Build ou au compte de service que vous avez créé. Pour en savoir plus, consultez Définir une condition sur un bucket : console.

gcloud

Pour créer un bucket spécifique pour les journaux, utilisez les commandes suivantes.

  1. Créez un bucket à partir de Cloud Shell avec la commande suivante :

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

    Remplacez les éléments suivants :

    • REGION/MULTI_REGION par la région choisie pour créer le bucket.
    • LOGS_BUCKET_NAME par le nom du nouveau bucket.
  2. Utilisez la commande suivante pour attribuer l'autorisation Storage Object Admin au compte de service :

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

    Remplacez les éléments suivants :

    • cortex-deployer par le compte de service Cloud Build par défaut.
    • LOGS_BUCKET_NAME par le nom du nouveau bucket.

Étapes suivantes

Une fois cette étape terminée, passez aux étapes de déploiement suivantes :

  1. Établir des charges de travail.
  2. Cloner le dépôt.
  3. Déterminer le mécanisme d'intégration.
  4. Configurer les composants (cette page).
  5. Configurer le déploiement.
  6. Exécuter le déplier.