Paso 4: Configura los componentes

En esta página se describe el cuarto paso para desplegar la infraestructura de datos de Cortex Framework, que es el componente principal de Cortex Framework. En este paso, configura losGoogle Cloud servicios necesarios para la implementación.

Habilitar servicios Google Cloud

En esta sección, habilitarás los siguientes Google Cloud servicios en tuGoogle Cloud proyecto:

  • Instancia y conjuntos de datos de BigQuery
  • API de Cloud Build
  • Segmentos de Cloud Storage
  • Cuenta de servicio
  • API Cloud Resource Manager
  • API de Data Catalog (si se implementa Datamesh)
  • Ejecuciones de flujos de trabajo (si se va a implementar Cortex para Meridian)
  • Plataforma de IA (si se va a desplegar Cortex for Meridian)

Habilita estos Google Cloud servicios con Cloud Shell:

  1. Copia y pega el siguiente 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
    

    Sustituye SOURCE_PROJECT por el ID de tu proyecto de origen.

  2. Verifica que los servicios de Google Cloud estén habilitados si recibes un mensaje de confirmación.

Opcional. Puedes habilitar los siguientes Google Cloud servicios en tu Google Cloud proyecto:

  • Cloud Composer para el procesamiento de la captura de datos de cambios (CDC), el acoplamiento de jerarquías (solo SAP) y la replicación de datos (solo no SAP) mediante gráficos acíclicos dirigidos (DAGs). Para configurar una instancia, consulta la documentación de Cloud Composer.
  • Looker para conectarse a plantillas de informes.
  • Los conjuntos de datos vinculados de BigQuery (antes Analytics Hub) se usan en algunas fuentes externas, como el DAG de previsión meteorológica. Puedes rellenar esta estructura con cualquier otra fuente disponible que elijas para casos avanzados.
  • Dataflow: herramienta de integración para muchos de los conjuntos de datos de marketing, como Google Ads.
  • Dataplex Universal Catalog: se usa para crear una malla de datos. Para obtener más información, consulta la guía de usuario de Data Mesh.
  • Para Cortex Framework con Meridian:
    • Colab Enterprise: ejecutar el cuaderno de Colab Enterprise durante la ejecución y tener acceso a lo siguiente:
    • El archivo de configuración y el cuaderno de Cloud Storage.
    • Consulta las vistas y tablas de BigQuery pertinentes.
    • Escribe los resultados en Cloud Storage.
    • Flujos de trabajo: ejecuta el flujo de trabajo y Cloud Build para activar la ejecución de cuadernos de Colab Enterprise.

Conceder permisos al usuario que ejecuta la acción

Concede los siguientes permisos al usuario que ejecuta la implementación, ya sea mediante laGoogle Cloud consola o la interfaz de línea de comandos de Google Cloud, para ejecutar la implementación en el proyecto en el que se activa Cloud Build:

  • Consumidor del uso del servicio (roles/serviceusage.serviceUsageConsumer)
  • Lector de objetos de Storage (roles/storage.objectViewer)
  • Administrador de almacenamiento (roles/storage.admin)
  • Editor de versiones de Cloud (roles/cloudbuild.builds.editor)
  • Lector de proyectos (roles/reader)
  • Usuario de tareas de BigQuery (roles/bigquery.jobUser)
  • Editor de datos de BigQuery (roles/bigquery.dataEditor)

Consola

  1. Abre la página de gestión de identidades y accesos en la Google Cloud consola:

    Abre la página Gestión de identidades y accesos.

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Conceder acceso.

  4. Introduce la dirección de correo del usuario que ejecuta la acción.

  5. Selecciona los siguientes roles en el menú desplegable:

    • Consumidor del uso del servicio (roles/serviceusage.serviceUsageConsumer)
    • Lector de objetos de Storage (roles/storage.objectViewer)
    • Administrador de almacenamiento (roles/storage.admin)
    • Editor de versiones de Cloud (roles/cloudbuild.builds.editor)
    • Lector de proyectos (roles/reader)
    • Usuario de tareas de BigQuery (roles/bigquery.jobUser)
    • Editor de datos de BigQuery (roles/bigquery.dataEditor)
  6. Haz clic en Guardar.

gcloud

Para asignar un rol a un usuario, ejecuta el comando add-iam-policy-binding:

  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/serviceusage.serviceUsageConsumer"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/storage.objectViewer"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/storage.admin"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/cloudbuild.builds.editor"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/reader"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/bigquery.jobUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/bigquery.dataEditor"

Haz los cambios siguientes:

  • SOURCE_PROJECT con el ID del proyecto de origen.
  • USER_EMAIL con el correo del usuario que ejecuta la acción. Por ejemplo, user:my-user@example.com. Para ver una lista completa de los tipos de principales o member, consulta la referencia de Policy Binding.

Crear y configurar la cuenta de servicio de Cloud Build

Cloud Build usa una cuenta de servicio para ejecutar compilaciones por ti. En esta sección se explica cómo crear una cuenta de servicio específica para las implementaciones de Cortex Framework y cómo conceder los permisos necesarios a la cuenta de servicio de Cloud Build.

Crear una cuenta de servicio

Crea una cuenta de servicio específica para implementar Cortex Framework para mejorar la seguridad y el control. Después de crear la cuenta de servicio, puedes especificarla durante el proceso de implementación mediante el parámetro de sustitución _BUILD_ACCOUNT.

Antes de empezar, debes habilitar la API IAM, configurar la autenticación y familiarizarte con las cuentas y los roles de servicio de IAM. Para obtener más información, consulta el artículo Crear cuentas de servicio.

Crea esta cuenta de servicio con la Google Cloud consola o con la CLI de Google Cloud.

Consola

  1. Ve a la página Cuentas de servicio.

    Cuentas de servicio

    Los pasos restantes aparecen en la Google Cloud consola.

  2. Selecciona un Google Cloud proyecto.

  3. Introduce una cuenta de servicio y un nombre visible, con una descripción en la consola de Google Cloud . La Google Cloud consola genera un ID de cuenta de servicio basado en este nombre. Edita el ID si es necesario. No podrás cambiarlo más adelante. Usa los siguientes valores predeterminados para la cuenta de servicio:

    • Nombre: "cortex-deployer".
    • Descripción: "Cortex Deployer Service Account".
    • Nombre visible: "Cortex Deployer".
  4. Concede a los usuarios acceso a esta cuenta de servicio.

    1. Añade el ID de todos los usuarios (incluido el tuyo) que puedan ejecutar la implementación a través de la cuenta de servicio.
    2. Asigna el rol Creador de tokens de cuenta de servicio. Para obtener más información sobre este rol, consulta Roles de cuentas de servicio.
  5. Haz clic en Hecho para terminar de crear la cuenta de servicio.

Si ya tienes una cuenta de servicio, sigue estos pasos:

  1. Ve a Cuentas de servicio.
  2. Selecciona la cuenta de servicio.
  3. Haz clic en la pestaña Permisos.
  4. Haz clic en Conceder acceso.
    1. Añade el ID de todos los usuarios (incluido el tuyo) que puedan ejecutar la implementación a través de la cuenta de servicio.
    2. Asigna el rol Creador de tokens de cuenta de servicio.

gcloud

  1. Crea una cuenta de servicio mediante una política de gestión de identidades y accesos con el siguiente comando:

    gcloud iam service-accounts create cortex-deployer \
    --description="Cortex Deployer Service Account" \
    --display-name="Cortex Deployer"
    
  2. Añade la política de IAM a tu proyecto Google Cloud con el siguiente comando:

    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role="roles/cloudbuild.builds.editor"
    
  3. Añade el ID de todos los usuarios (incluido el tuyo) que puedan ejecutar la implementación a través de la cuenta de servicio y asígnales el rol Creador de tokens de cuenta de servicio con el siguiente comando:

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

    Haz los cambios siguientes:

    • SOURCE_PROJECT con el proyecto de origen para la implementación de la base de datos de Cortex Framework.
    • USER_EMAIL con el correo del usuario que ejecuta la acción.

Para obtener más información sobre cómo crear una cuenta de servicio, consulta el artículo Crear una cuenta de servicio.

Conceder permisos

La cuenta de servicio de Cloud Build necesita permisos específicos en el proyecto de origen (y en el de destino si vas a implementar en otro proyecto). Asigna los siguientes roles con la Google Cloud consola o con la interfaz de línea de comandos de Google Cloud:

  • Cuenta de servicio de Cloud Build (roles/cloudbuild.builds.builder)
  • Usuario de cuenta de servicio (roles/iam.serviceAccountUser)
  • Editor de datos de BigQuery (roles/bigquery.dataEditor)
  • Usuario de tareas de BigQuery (roles/bigquery.jobUser)
  • Editor de registros (roles/logging.logWriter)
  • Administrador de Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin - si se va a implementar Cortex para Meridian)
  • Usuario de objetos de Storage (roles/storage.objectUser - si se implementa Cortex para Meridian)
  • Editor de flujos de trabajo (roles/workflows.editor - si se implementa Cortex para Meridian)

Consola

  1. En la consola, ve a la página IAM. Google Cloud

    Ir a IAM

  2. Selecciona el proyecto de origen.

  3. Haz clic en Conceder acceso.

  4. Añade la cuenta de servicio predeterminada de Cloud Build del paso anterior como un nuevo principal.

  5. En el menú desplegable Seleccionar un rol, busca Cuenta de servicio de Cloud Build y haz clic en Cuenta de servicio de Cloud Build.

  6. Repite el paso anterior para añadir el resto de los roles:

    • Usuario de cuenta de servicio
    • Editor de datos de BigQuery
    • Usuario de tareas de BigQuery
    • Editor de registros
    • Administrador de Colab Enterprise (si se va a implementar Cortex para Meridian)
    • Usuario de objetos de Storage (si se implementa Cortex para Meridian)
    • Editor de flujos de trabajo (si se implementa Cortex para Meridian)
  7. Haz clic en Guardar.

  8. Comprueba que la cuenta de servicio y los roles correspondientes aparezcan en la página de gestión de identidades y accesos. Has concedido un rol de gestión de identidades y accesos correctamente.

gcloud

Usa el siguiente comando para asignar los roles a la cuenta de servicio de Cloud Build:

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

Haz los cambios siguientes:

  • SOURCE_PROJECT con el ID del proyecto de origen.
  • CLOUD_BUILD_SA con la cuenta de servicio de Cloud Build, en el formato CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com.

Para obtener más información, consulta los artículos Conceder un rol a la cuenta de servicio de Cloud Build mediante la página de gestión de identidades y accesos y Definir y gestionar políticas de gestión de identidades y accesos en los contenedores.

Crear una cuenta de servicio adicional para Cortex para Meridian

Se necesita una cuenta de servicio independiente para Meridian al implementar Cortex Framework. Si no vas a implementar Meridian, puedes saltarte este paso. Se necesita una cuenta de servicio independiente para lo siguiente:

  • Ejecutar el flujo de trabajo y Cloud Build para activar las ejecuciones de cuadernos de Colab Enterprise.
  • Ejecutar el cuaderno de Colab Enterprise con acceso a:
    • Archivo de cuaderno y de configuración en Cloud Storage.
    • Consulta las vistas y tablas de BigQuery pertinentes.
    • Escribe los resultados en Cloud Storage.

Usa el siguiente comando para crear una cuenta de servicio para Cortex para Meridian:


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

Haz los cambios siguientes:

  • PROJECT_ID por el ID del proyecto en el que se ha desplegado Cortex para Meridian.
  • cortex-meridian-colab-runner: también puedes usar otro ID de cuenta de servicio. Ten en cuenta que cortex-meridian-colab-runner es el valor predeterminado y que, si lo cambias, es posible que tengas que ajustar otros comandos.

Los roles mínimos necesarios para una cuenta de servicio dedicada de Cortex para Meridian son los siguientes:

  • Lector de datos de BigQuery (roles/bigquery.dataViewer)
  • Usuario de tareas de BigQuery (roles/bigquery.jobUser)
  • Usuario con acceso a sesiones de lectura de BigQuery (roles/bigquery.readSessionUser)
  • Editor de versiones de Cloud (roles/cloudbuild.builds.editor)
  • Administrador de Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin)
  • Editor de registros (roles/logging.logWriter)
  • Administrador de tiempo de ejecución de Notebooks (aiplatform.notebookRuntimeAdmin)
  • Administrador de almacenamiento (roles/storage.admin)
  • Usuario de objetos de Storage (roles/storage.objectUser)
  • Agente de servicio de Vertex AI Colab (roles/aiplatform.colabServiceAgent)

Usa el siguiente comando para asignar los roles a la cuenta de servicio dedicada de Cortex para Meridian:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/bigquery.dataViewer'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/bigquery.jobUser'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/bigquery.readSessionUser'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/cloudbuild.builds.editor'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/aiplatform.colabEnterpriseAdmin'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/logging.logWriter'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/aiplatform.notebookRuntimeAdmin'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/storage.admin'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/storage.objectUser'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/aiplatform.colabServiceAgent'

Haz los cambios siguientes:

  • PROJECT_ID por el ID del proyecto en el que se ha desplegado Cortex para Meridian.
  • SERVICE_ACCOUNT_EMAIL con tu cuenta de servicio de Cortex para Meridian.

Pasos opcionales

Para personalizar mejor tu implementación, sigue estos pasos opcionales:

Se necesita un segmento de almacenamiento para almacenar las secuencias de comandos de los grafos acíclicos dirigidos (DAG) de procesamiento y otros archivos temporales generados durante la implementación. Estos scripts se deben mover manualmente a una instancia de Cloud Composer o Apache Airflow después de la implementación.

Puedes crear el segmento de almacenamiento desde la CLI de Google Cloud o la Google Cloud consola siguiendo estos pasos.

Consola

  1. Ve a Cloud Storage.

    Cloud Storage

  2. Crea un segmento en la misma región que tus conjuntos de datos de BigQuery.

  3. Selecciona el segmento creado.

  4. Ve a la pestaña Permissions.

  5. Concede el permiso Storage Object Creator al ID de usuario que ejecuta el comando Build o a la cuenta de servicio que has creado. Para obtener más información, consulta Definir una nueva condición en un bucket: consola.

gcloud

  1. Crea un segmento desde Cloud Shell con el siguiente comando:

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

    Haz los cambios siguientes:

    • DAG_BUCKET_NAME con el nombre del nuevo segmento.
    • REGION/MULTI_REGION con la misma región que tus conjuntos de datos de BigQuery.
  2. Usa el siguiente comando para asignar el permiso Storage Object Creator a la cuenta de servicio:

    gcloud storage buckets add-iam-policy-binding gs://DAG_BUCKET_NAME --member=serviceAccount:CLOUD_BUILD_SA --role=roles/storage.objectCreator
    

    Haz los cambios siguientes:

    • CLOUD_BUILD_SA con la cuenta de servicio predeterminada de Cloud Build.
    • DAG_BUCKET_NAME con el nombre del nuevo segmento.

Crear un segmento de almacenamiento para los registros

Puedes crear un segmento específico para el proceso de Cloud Build para almacenar los registros. Esto resulta útil si quieres restringir los datos que se pueden almacenar en los registros a una región específica. Puedes crear el segmento de almacenamiento para los registros desde la CLI de Google Cloud o la Google Cloud consola.

Consola

Para crear un contenedor específico para los registros, sigue estos pasos:

  1. Ve a Cloud Storage.

    Cloud Storage

  2. Crea un segmento en la misma región en la que se ejecutará el despliegue.

  3. Selecciona el segmento creado.

  4. Ve a la pestaña Permissions.

  5. Concede el permiso Storage Object Admin al ID de usuario que ejecuta el comando Build o a la cuenta de servicio que has creado. Para obtener más información, consulta Definir una nueva condición en un bucket: consola.

gcloud

Para crear un segmento específico para los registros, usa los siguientes comandos.

  1. Crea un segmento desde Cloud Shell con el siguiente comando:

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

    Haz los cambios siguientes:

    • REGION/MULTI_REGION con la región elegida para crear el segmento.
    • LOGS_BUCKET_NAME con el nombre del nuevo segmento.
  2. Usa el siguiente comando para asignar el permiso Storage Object Admin a la cuenta de servicio:

    gcloud storage buckets add-iam-policy-binding gs://LOGS_BUCKET_NAME --member=serviceAccount:CLOUD_BUILD_SA --role=roles/storage.objectAdmin
    

    Haz los cambios siguientes:

    • CLOUD_BUILD_SA con la cuenta de servicio predeterminada de Cloud Build.
    • LOGS_BUCKET_NAME con el nombre del nuevo segmento.

Pasos siguientes

Cuando haya completado este paso, siga los pasos de implementación que se indican a continuación:

  1. Establece cargas de trabajo.
  2. Clonar repositorio.
  3. Determina el mecanismo de integración.
  4. Configurar componentes (en esta página).
  5. Configurar la implementación.
  6. Ejecuta la implementación.