Paso 4: Configura los componentes

En esta página, se describe el cuarto paso para implementar Cortex Framework Data Foundation, el núcleo de Cortex Framework. En este paso, configurarás los serviciosGoogle Cloud necesarios para la implementación.

Habilita los servicios de Google Cloud

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

  • Instancia y conjuntos de datos de BigQuery
  • API de Cloud Build
  • Depósitos de Cloud Storage
  • Cuenta de servicio
  • API de Cloud Resource Manager
  • API de Data Catalog (si se implementa Datamesh)
  • Ejecuciones de flujos de trabajo (si se implementa Cortex para Meridian)
  • Plataforma de IA (si se implementa Cortex para 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
    

    Reemplaza SOURCE_PROJECT por el ID de tu proyecto fuente.

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

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

  • Cloud Composer para el procesamiento de la captura de datos modificados (CDC), el aplanamiento de la jerarquía (solo para SAP) y la replicación de datos (solo para no SAP) a través de grafos 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 sharing (anteriormente Analytics Hub) se usan para algunas fuentes externas, como el DAG de clima. En situaciones avanzadas, puedes optar por completar esta estructura con cualquier otra fuente disponible que elijas.
  • Dataflow: Herramienta de integración para muchos de los conjuntos de datos de marketing, como Google Ads.
  • Dataplex Universal Catalog: Se usa para compilar una malla de datos. Para obtener más información, consulta la Guía del usuario de Data Mesh.
  • Para Cortex Framework con Meridian, haz lo siguiente:
    • Colab Enterprise: Ejecución del notebook de Colab Enterprise durante la ejecución y acceso a lo siguiente:
    • El notebook y el archivo de configuración en Cloud Storage
    • Consultar las vistas y tablas pertinentes de BigQuery
    • Escribe los resultados nuevamente en Cloud Storage.
    • Workflows: Ejecuta el flujo de trabajo y Cloud Build para activar las ejecuciones de notebooks de Colab Enterprise.

Otorga permisos al usuario que ejecuta la acción

Otorga los siguientes permisos al usuario que ejecuta la implementación, ya sea con la consola deGoogle Cloud o con Google Cloud CLI, para ejecutar la implementación en el proyecto en el que se activa Cloud Build:

  • Consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer)
  • Visualizador de objetos de Storage (roles/storage.objectViewer)
  • Administrador de almacenamiento (roles/storage.admin)
  • Editor de Cloud Build (roles/cloudbuild.builds.editor)
  • Lector del proyecto (roles/reader)
  • Usuario de trabajo de BigQuery (roles/bigquery.jobUser)
  • Editor de datos de BigQuery (roles/bigquery.dataEditor)

Console

  1. Abre la página de IAM en la consola de Google Cloud :

    Abrir la página IAM

  2. Selecciona tu proyecto y haz clic en Continuar.

  3. Haz clic en Otorgar acceso.

  4. Ingresa la dirección de correo electrónico del usuario que ejecuta la acción.

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

    • Consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer)
    • Visualizador de objetos de Storage (roles/storage.objectViewer)
    • Administrador de almacenamiento (roles/storage.admin)
    • Editor de Cloud Build (roles/cloudbuild.builds.editor)
    • Lector del proyecto (roles/reader)
    • Usuario de trabajo de BigQuery (roles/bigquery.jobUser)
    • Editor de datos de BigQuery (roles/bigquery.dataEditor)
  6. Haz clic en Guardar.

gcloud

Para otorgar 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"

Reemplaza lo siguiente:

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

Crea y configura la cuenta de servicio de Cloud Build

Cloud Build usa una cuenta de servicio para ejecutar compilaciones en tu nombre. En esta sección, se explica cómo crear una cuenta de servicio dedicada para las implementaciones de Cortex Framework y cómo otorgar los permisos necesarios a la cuenta de servicio de Cloud Build.

Crear una nueva cuenta de servicio

Crea una cuenta de servicio dedicada para implementar Cortex Framework y mejorar la seguridad y el control. Después de crear la nueva cuenta de servicio, puedes especificar esta cuenta de servicio durante el proceso de implementación con el parámetro de sustitución _BUILD_ACCOUNT.

Antes de comenzar, debes habilitar la API de IAM, configurar la autenticación y comprender los roles y las cuentas de servicio de IAM. Para obtener más información, consulta Crea cuentas de servicio.

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

Console

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

    Cuentas de servicio

    Los pasos restantes aparecen en la consola de Google Cloud .

  2. Selecciona un Google Cloud proyecto.

  3. Ingresa una cuenta de servicio y un nombre visible, con una descripción y en la consola de Google Cloud . La consola de Google Cloud genera un ID de cuenta de servicio a partir de este nombre. Si es necesario, edita el ID. No podrás cambiar el ID más adelante. Usa los siguientes valores predeterminados para la cuenta de servicio:

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

    1. Agrega el ID de todos los usuarios (incluido el tuyo) que pueden ejecutar la implementación a través de la cuenta de servicio.
    2. Asigna el rol de 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 Listo 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 Otorgar acceso.
    1. Agrega el ID de todos los usuarios (incluido el tuyo) que pueden ejecutar la implementación a través de la cuenta de servicio.
    2. Asigna el rol de Creador de tokens de cuenta de servicio.

gcloud

  1. Crea una cuenta de servicio a través de una política de IAM con el siguiente comando:

    gcloud iam service-accounts create cortex-deployer \
    --description="Cortex Deployer Service Account" \
    --display-name="Cortex Deployer"
    
  2. Agrega 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. Agrega el ID de todos los usuarios (incluido el tuyo) que pueden ejecutar la implementación a través de la cuenta de servicio y asígnale el rol de 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"
    

    Reemplaza lo siguiente:

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

Para obtener más información sobre cómo crear una cuenta de servicio nueva, consulta Crea una cuenta de servicio.

Otorgar permisos

La cuenta de servicio de Cloud Build necesita permisos específicos en tu proyecto de origen (y en el proyecto de destino si implementas en un proyecto separado). Otorga los siguientes roles con la consola de Google Cloud o Google Cloud CLI:

  • 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 trabajo de BigQuery (roles/bigquery.jobUser)
  • Escritor de registros (roles/logging.logWriter)
  • Administrador de Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin, si se implementa Cortex para Meridian)
  • Usuario de objetos de almacenamiento (roles/storage.objectUser, si se implementa Cortex para Meridian)
  • Editor de flujos de trabajo (roles/workflows.editor, si se implementa Cortex para Meridian)

Console

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

    Ir a IAM

  2. Selecciona tu proyecto fuente.

  3. Haz clic en Grant access.

  4. Agrega la cuenta de servicio predeterminada de Cloud Build del paso anterior como una principal nueva.

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

  6. Repite el paso anterior para agregar el resto de los roles:

    • Service Account User
    • Editor de datos de BigQuery
    • Usuario de trabajo de BigQuery
    • Escritor de registros
    • Administrador de Colab Enterprise (si se implementa Cortex para Meridian)
    • Usuario de objetos de almacenamiento (si se implementa Cortex para Meridian)
    • Editor de flujos de trabajo (si implementas Cortex para Meridian)
  7. Haz clic en Guardar.

  8. Verifica que la cuenta de servicio y los roles correspondientes aparezcan en la página de IAM. Otorgaste correctamente un rol de IAM.

gcloud

Usa el siguiente comando para otorgar 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"

Reemplaza lo siguiente:

  • 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 Cómo otorgar un rol a la cuenta de servicio de Cloud Build con la página de IAM y Cómo configurar y administrar políticas de IAM en buckets.

Crea una cuenta de servicio adicional para Cortex en Meridian

Se necesita una cuenta de servicio independiente para Meridian cuando se implementa Cortex Framework. Si no realizas la implementación para Meridian, puedes omitir este paso. Se requiere una cuenta de servicio independiente para lo siguiente:

  • Ejecutar el flujo de trabajo y Cloud Build para activar las ejecuciones de notebooks de Colab Enterprise
  • Ejecuta el notebook de Colab Enterprise con acceso a lo siguiente:
    • Notebook y archivo de configuración en Cloud Storage
    • Consultar las vistas y tablas pertinentes de BigQuery
    • Escribe los resultados nuevamente 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"

Reemplaza lo siguiente:

  • PROJECT_ID por el ID del proyecto en el que se implementa Cortex para Meridian.
  • cortex-meridian-colab-runner: De manera opcional, puedes usar un ID de cuenta de servicio diferente. Ten en cuenta que cortex-meridian-colab-runner es el valor predeterminado y que cambiarlo podría requerir ajustes en otros comandos.

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

  • Visualizador de datos de BigQuery (roles/bigquery.dataViewer)
  • Usuario de trabajo de BigQuery (roles/bigquery.jobUser)
  • Usuario de sesión de lectura de BigQuery (roles/bigquery.readSessionUser)
  • Editor de Cloud Build (roles/cloudbuild.builds.editor)
  • Administrador de Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin)
  • Escritor de registros (roles/logging.logWriter)
  • Administrador del entorno de ejecución del notebook (aiplatform.notebookRuntimeAdmin)
  • Administrador de almacenamiento (roles/storage.admin)
  • Usuario de objetos de almacenamiento (roles/storage.objectUser)
  • Agente de servicio de Colab de Vertex AI (roles/aiplatform.colabServiceAgent)

Usa el siguiente comando para otorgar 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'

Reemplaza lo siguiente:

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

Pasos opcionales

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

Se requiere un bucket de almacenamiento para almacenar las secuencias de comandos de DAG de procesamiento y otros archivos temporales que se generan durante la implementación. Estos secuencias de comandos se deben mover manualmente a una instancia de Cloud Composer o Apache Airflow después de la implementación.

Puedes crear el bucket de almacenamiento desde Google Cloud CLI o la Google Cloud consola con los siguientes pasos.

Console

  1. Ve a Cloud Storage.

    Cloud Storage

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

  3. Selecciona el bucket creado.

  4. Ve a la pestaña Permissions.

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

gcloud

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

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

    Reemplaza lo siguiente:

    • DAG_BUCKET_NAME por el nombre del bucket nuevo.
    • 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
    

    Reemplaza lo siguiente:

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

Crea un bucket de Storage para los registros

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

Console

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

  1. Ve a Cloud Storage.

    Cloud Storage

  2. Crea un bucket en la misma región en la que se ejecutaría la implementación.

  3. Selecciona el bucket creado.

  4. Ve a la pestaña Permissions.

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

gcloud

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

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

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

    Reemplaza lo siguiente:

    • REGION/MULTI_REGION con la región elegida para crear el bucket.
    • LOGS_BUCKET_NAME por el nombre del bucket nuevo.
  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
    

    Reemplaza lo siguiente:

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

Próximos pasos

Después de completar este paso, continúa con los siguientes pasos de implementación:

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