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 servicios necesarios Google Cloud para la implementación.
Habilita los servicios Google Cloud
En esta sección, habilitarás los siguientes Google Cloud servicios en tu Google Cloud proyecto:
- Instancia y conjuntos de datos de BigQuery
- API de Cloud Build
- Depósitos de Cloud Storage
- Cuenta de servicio
- API de Resource Manager
- Ejecuciones de flujos de trabajo (si implementas Cortex para Meridian)
- AI Platform (si implementas Cortex para Meridian)
Habilita estos Google Cloud servicios con Cloud Shell:
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.comReemplaza
SOURCE_PROJECTpor el ID del proyecto de origen.Verifica que los Google Cloud servicios estén habilitados si recibes un mensaje de éxito.
Opcional. Puedes habilitar los siguientes Google Cloud servicios en tu Google Cloud proyecto:
- Airflow administrado para el procesamiento de la captura de datos modificados (CDC), el aplanamiento de la jerarquía (solo SAP) y la replicación de datos (solo no SAP) a través de gráficos acíclicos dirigidos (DAGs). Para configurar una instancia, consulta la documentación de Airflow administrado.
- 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 Weather. Puedes elegir completar esta estructura con cualquier otra fuente disponible que elijas para situaciones avanzadas.
- Dataflow: Herramienta de integración para muchos de los conjuntos de datos de marketing, como Google Ads.
- Para Cortex Framework con Meridian:
- Colab Enterprise: Ejecuta el notebook de Colab Enterprise durante la ejecución y tiene acceso a lo siguiente:
- El notebook y el archivo de configuración en Cloud Storage.
- Consulta las vistas y las tablas relevantes de BigQuery.
- Vuelve a escribir los resultados en Cloud Storage.
- Workflows: Ejecuta Workflow y Cloud Build para activar las ejecuciones de notebooks de Colab Enterprise.
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 te guiará para crear una cuenta de servicio dedicada para las implementaciones de Cortex Framework y 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 para 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.
Crea esta nueva cuenta de servicio con la Google Cloud consola de o Google Cloud CLI.
Console
Ve a la página Cuentas de servicio.
Los pasos restantes aparecen en la Google Cloud consola de.
Selecciona un Google Cloud proyecto.
Ingresa una cuenta de servicio y un nombre visible, con una descripción y en la Google Cloud consola de. La Google Cloud consola de genera un ID de cuenta de servicio a partir de este nombre. Si es necesario, edita el ID. No puedes 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".
Otorga acceso a usuarios a esta cuenta de servicio.
- Agrega el ID de todos los usuarios (incluido el tuyo) que pueden ejecutar la implementación a través de la cuenta de servicio.
- 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.
Haz clic en Listo para terminar de crear la cuenta de servicio.
Si ya tienes una cuenta de servicio, sigue estos pasos:
- Ir a Cuentas de servicio.
- Selecciona la cuenta de servicio.
- Haz clic en la pestaña Principales con acceso.
- Haz clic en Otorgar acceso.
- Agrega el ID de todos los usuarios (incluido el tuyo) que pueden ejecutar la implementación a través de la cuenta de servicio.
- Asigna el rol Creador de tokens de cuenta de servicio.
gcloud
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"Agrega la política de IAM a tu Google Cloud proyecto 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"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ígnales el rol Creador de tokens de cuenta de servicio con el siguiente comando:
gcloud iam service-accounts add-iam-policy-binding cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"Reemplaza lo siguiente:
SOURCE_PROJECTpor el proyecto de origen para la implementación de Cortex Framework Data Foundation.USER_EMAILpor el correo electrónico del usuario que ejecuta.
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 realizas la implementación en un proyecto independiente). Otorga los siguientes roles con la Google Cloud consola o Google Cloud CLI:
- Cuenta de servicio de Cloud Build (
roles/cloudbuild.builds.builder) - Usuario de la 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 implementas Cortex para Meridian) - Usuario de objetos de almacenamiento (
roles/storage.objectUser- si implementas Cortex para Meridian) Editor de flujos de trabajo (
roles/workflows.editor- si implementas Cortex para Meridian)
Console
En la Google Cloud consola de, dirígete a la página IAM.
Selecciona tu proyecto de origen.
Haz clic en Otorgar acceso.
Agrega la cuenta de servicio predeterminada de Cloud Build del paso anterior como una principal nueva.
En el menú desplegable Selecciona un rol, busca cuenta de servicio de Cloud Build, luego haz clic en cuenta de servicio de Cloud Build.
Repite el paso anterior para agregar el resto de los roles:
- Usuario de la cuenta de servicio
- Editor de datos de BigQuery
- Usuario de trabajo de BigQuery
- Escritor de registros
- Administrador de Colab Enterprise (si implementas Cortex para Meridian)
- Usuario de objetos de almacenamiento (si implementas Cortex para Meridian)
- Editor de flujos de trabajo (si implementas Cortex para Meridian)
Haz clic en Guardar.
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: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"
Reemplaza lo siguiente:
SOURCE_PROJECTpor el ID del proyecto de origen.CLOUD_BUILD_SApor la cuenta de servicio de Cloud Build, en el formatoCLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com.
Para obtener más información, consulta Otorga un rol a la cuenta de servicio de Cloud Build con la página de IAM y Establece y administra políticas de IAM en buckets.
Crea una cuenta de servicio adicional para Cortex para 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:
- Ejecuta Workflow 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.
- Consulta las vistas y las tablas relevantes de BigQuery.
- Vuelve a escribir 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=SOURCE_PROJECT \
--description="Cortex for Meridian Colab Runner Service Account" \
--display-name="Cortex Meridian Runner"
Reemplaza lo siguiente:
SOURCE_PROJECTpor 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 quecortex-meridian-colab-runneres el valor predeterminado y que cambiarlo puede requerir ajustes en otros comandos.
Los roles mínimos requeridos para una cuenta de servicio dedicada para Cortex para 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 para Cortex para 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'
Reemplaza lo siguiente:
SOURCE_PROJECTpor el ID del proyecto en el que se implementa Cortex para Meridian.cortex-meridian-colab-runnerpor tu cuenta de servicio para Cortex para Meridian.
Crea un bucket de Storage para almacenar archivos relacionados con DAG
Se requiere un bucket de almacenamiento para almacenar secuencias de comandos de DAG de procesamiento y otros archivos temporales generados durante la implementación. Estas secuencias de comandos deben moverse de forma manual a una instancia de Airflow administrado 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
Ve a Cloud Storage.
Crea un bucket en la misma región que tus conjuntos de datos de BigQuery.
Selecciona el bucket creado.
Ve a la pestaña
Permissions.Otorga el permiso
Storage Object Creatoral 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 condición nueva en un bucket: Consola.
gcloud
Crea un bucket desde Cloud Shell con el siguiente comando:
gcloud storage buckets create gs://COMPOSER_DAG_BUCKET -l REGION/MULTI_REGIONReemplaza lo siguiente:
COMPOSER_DAG_BUCKETpor el nombre del bucket nuevo.REGION/MULTI_REGIONpor la misma región que tus conjuntos de datos de BigQuery.
Usa el siguiente comando para asignar el permiso
Storage Object Creatora la cuenta de servicio:gcloud storage buckets add-iam-policy-binding gs://COMPOSER_DAG_BUCKET \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectCreatorReemplaza lo siguiente:
cortex-deployerpor la cuenta de servicio de Cloud Build.COMPOSER_DAG_BUCKETpor el nombre del bucket nuevo.
Crea un bucket de Storage para los registros
Puedes crear un bucket específico para que el proceso de compilación 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 para los registros desde la Google Cloud CLI o la Google Cloud consola.
Console
Para crear un bucket específico para los registros, sigue estos pasos:
Ve a Cloud Storage.
Crea un bucket en la misma región en la que se ejecutaría la implementación.
Selecciona el bucket creado.
Ve a la pestaña
Permissions.Otorga el permiso
Storage Object Adminal 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 condición nueva en un bucket: Consola.
gcloud
Para crear un bucket específico para los registros, usa los siguientes comandos.
Crea un bucket desde Cloud Shell con el siguiente comando:
gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGIONReemplaza lo siguiente:
REGION/MULTI_REGIONpor la región elegida para crear el bucket.LOGS_BUCKET_NAMEpor el nombre del bucket nuevo.
Usa el siguiente comando para asignar el permiso
Storage Object Admina la cuenta de servicio:gcloud storage buckets add-iam-policy-binding gs://LOGS_BUCKET_NAME \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectAdminReemplaza lo siguiente:
cortex-deployerpor la cuenta de servicio predeterminada de Cloud Build.LOGS_BUCKET_NAMEpor el nombre del bucket nuevo.
Próximos pasos
Después de completar este paso, continúa con los siguientes pasos de implementación:
- Establece cargas de trabajo.
- Clona el repositorio.
- Determina el mecanismo de integración.
- Configura los componentes (esta página).
- Configura la implementación.
- Ejecuta la implementación.