Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta guía, se explica cómo crear una canalización de CI/CD para probar, sincronizar e implementar DAG en tu entorno de Cloud Composer desde tu repositorio de GitHub.
Si solo quieres sincronizar datos de otros servicios, consulta Cómo transferir datos de otros servicios.
Descripción general de la canalización de CI/CD
La canalización de CI/CD que prueba, sincroniza e implementa DAGs tiene los siguientes pasos:
Haces un cambio en un DAG y lo envías a una rama de desarrollo en tu repositorio.
Abres una solicitud de extracción en la rama principal de tu repositorio.
Cloud Build ejecuta pruebas de unidades para verificar que tu DAG sea válido.
Tu solicitud de extracción se aprobó y se combinó con la rama principal de tu en un repositorio de confianza.
Cloud Build sincroniza tu entorno de Cloud Composer de desarrollo con estos cambios nuevos.
Verificas que el DAG se comporte según lo esperado en tu desarrollo en un entorno de nube.
Si tu DAG funciona como se espera, súbelo a tu instancia de entorno de Cloud Composer.
Objetivos
Antes de comenzar
En esta guía, se da por sentado que trabajas con dos entornos de Cloud Composer idénticos: un entorno de desarrollo y un entorno de producción.
A los efectos de esta guía, configurarás una canalización de CI/CD solo para tu entorno de desarrollo. Asegúrate de que el entorno que uses no sea de producción.
En esta guía, se da por sentado que tienes tus DAG y sus pruebas almacenadas en un repositorio de GitHub.
En la canalización de CI/CD de ejemplo, se muestra el contenido de un repositorio de ejemplo. Los DAG y las pruebas se almacenados en el directorio
dags/
, con los archivos de requisitos, las restricciones de configuración de Terraform y los archivos de configuración de Cloud Build almacenados en el nivel superior. La utilidad de sincronización de DAG y sus requisitos se encuentran enutils
.
Crea un trabajo de verificación previa al envío y pruebas de unidades
El primer trabajo de Cloud Build ejecuta una verificación previa al envío, que ejecuta la unidad pruebas para tus DAG.
Cómo agregar pruebas de unidades
Si aún no lo hiciste, crea pruebas de unidades para tus DAG. Guarda estas pruebas junto con los DAG en tu repositorio, cada uno con el sufijo _test
. Por ejemplo, el archivo de prueba del DAG en example_dag.py
es example_dag_test.py
. Estas son las pruebas que se ejecutan como una verificación previa al envío en tu repositorio.
Crea la configuración de YAML de Cloud Build para la verificación previa al envío
En tu repositorio, crea un archivo YAML llamado test-dags.cloudbuild.yaml
que
configura tu trabajo de Cloud Build para las verificaciones del envío previo. En él hay
tres pasos:
- Instala las dependencias que necesitan tus DAG.
- Instala las dependencias que necesitan tus pruebas de unidades.
- Ejecuta las pruebas del DAG.
Crea el activador de Cloud Build para la verificación previa al envío
Sigue las instrucciones de la guía Cómo compilar repositorios desde GitHub para crear un activador basado en la app de GitHub con la siguiente configuración:
Nombre:
test-dags
Evento: Solicitud de extracción
Fuente: Repositorio: Elige tu repositorio.
Fuente: Rama base:
^main$
(cambiamain
por el nombre de tu la rama base del repositorio, si es necesario)Fuente (control de comentarios): no obligatorio
Configuración de compilación: Archivo de configuración de Cloud Build:
/test-dags.cloudbuild.yaml
(la ruta de acceso a tu archivo de compilación)
Crea un trabajo de sincronización de DAG y agrega una secuencia de comandos de utilidad de DAG
A continuación, configura un trabajo de Cloud Build que ejecute una secuencia de comandos de utilidad de DAG. La secuencia de comandos de utilidad de esta tarea sincroniza tus DAG con tu entorno de Cloud Composer después de que se combinan con la rama principal de tu repositorio.
Agrega la secuencia de comandos de utilidad de DAG
Agregar la secuencia de comandos de utilidad del DAG a tu repositorio Esta secuencia de comandos de utilidad copia todos los archivos DAG del directorio dags/
de tu
repositorio en un directorio temporal y omite todos los archivos Python que no sean DAG. El
de comandos usa la biblioteca cliente de Cloud Storage para subir todos los archivos
desde ese directorio temporal al directorio dags/
de tu
El bucket del entorno de Cloud Composer.
Crea una configuración YAML de Cloud Build para sincronizar DAG
En tu repositorio, crea un archivo YAML llamado
add-dags-to-composer.cloudbuild.yaml
que configura tu Cloud Build
trabajo para sincronizar DAG. En él, hay dos pasos:
Instalar las dependencias que necesita la secuencia de comandos de utilidad de DAG
Ejecuta la secuencia de comandos de utilidad para sincronizar los DAG en tu repositorio con tu entorno de Cloud Composer.
Crea el activador de Cloud Build
Sigue los pasos que se indican en Compila repositorios desde GitHub. para crear un activador basado en la app de GitHub con los siguientes parámetros de configuración:
Nombre:
add-dags-to-composer
Evento: Enviar a una rama
Fuente: Repositorio: elige tu repositorio
Fuente: Rama base:
^main$
(cambiamain
al nombre de la rama base de tu repositorio, si es necesario)Fuente: filtro de archivos incluidos (glob):
dags/**
Configuración de compilación: Archivo de configuración de Cloud Build:
/add-dags-to-composer.cloudbuild.yaml
(la ruta de acceso a tu archivo de compilación)
En la Configuración avanzada, agrega dos variables de sustitución:
_DAGS_DIRECTORY
: Es el directorio en el que se encuentran los DAG en tu repositorio. Si usas el repositorio de ejemplo de esta guía, esdags/
._DAGS_BUCKET
: Es el bucket de Cloud Storage que contiene la Directoriodags/
en tu Cloud Composer de desarrollo en un entorno de nube. Omite el prefijogs://
. Por ejemplo:us-central1-example-env-1234ab56-bucket
Prueba tu canalización de CI/CD
En esta sección, sigue un flujo de desarrollo de DAG que usa los activadores de Cloud Build que creaste recientemente.
Ejecuta un trabajo previo al envío
Crea una solicitud de extracción en tu rama principal para probar la compilación. Busca la verificación previa al envío en la página. Haz clic en Detalles y elige Ver más detalles en Google Cloud Build para ver los registros de compilación en la consola de Google Cloud.
Si falló la verificación del envío previo, consulta Cómo abordar fallas de compilación.
Valida que el DAG funcione en tu entorno de desarrollo de Cloud Composer
Una vez que se apruebe tu solicitud de extracción, combínala con tu rama principal. Usa la
consola de Google Cloud para
ver los resultados de la compilación. Si tienes muchas
de Cloud Build, puedes filtrar tus compilaciones según el nombre del activador
add-dags-to-composer
Después de que el trabajo de sincronización de Cloud Build se complete correctamente, aparecerá el DAG sincronizado en tu entorno de desarrollo de Cloud Composer. Ahí puedes y validar que el DAG funciona como se espera.
Agrega el DAG a tu entorno de producción
Después de que el DAG funcione como se espera, agrégalo a tu producción de forma manual
en un entorno de nube. Para ello, sigue estos pasos:
subir el archivo DAG
al directorio dags/
en tu Cloud Composer de producción
en el bucket de tu entorno.
Si tu trabajo de sincronización de DAG falló o si tu DAG no se comporta como se espera en tu entorno de Cloud Composer de desarrollo, consulta Cómo abordar las fallas de compilación.
Cómo abordar las fallas de compilación
En esta sección, se explica cómo abordar situaciones comunes de fallas de compilación.
¿Qué sucede si mi verificación previa al envío falla?
En tu solicitud de extracción, haz clic en Detalles y elige Ver más detalles en Google Cloud Build para ver los registros de compilación en la consola de Google Cloud. Usa estos registros para ayudarte a depurar el problema con tu DAG. Cuando resuelvas los problemas, confirma la solución y envíala a tu . Se vuelve a ejecutar la verificación previa al envío, y puedes seguir iterando los registros como herramienta de depuración.
¿Qué sucede si mi trabajo de sincronización de DAG falla?
Usa la consola de Google Cloud para
ver los resultados de la compilación. Si tienes muchos
activadores de Cloud Build, puedes filtrar tus compilaciones según el nombre del activador
add-dags-to-composer
. Examina los registros del trabajo de compilación y resuelve los errores. Si necesitas ayuda adicional para resolver los errores, utiliza
canales de asistencia.
¿Qué sucede si mi DAG no funciona correctamente en mi entorno de Cloud Composer?
Si tu DAG no funciona como se espera en tu desarrollo de Cloud Composer, no asciendas manualmente el DAG a tu entorno de producción de Cloud Composer. Como alternativa, toma una de las siguientes medidas:
- Revierte la solicitud de extracción con los cambios que dañaron tu DAG para restablecerlo al estado inmediatamente antes de los cambios (esto también revierte todos los demás archivos en esa solicitud de extracción).
- Crea una solicitud de extracción nueva para revertir manualmente los cambios en el DAG dañado.
- Crea una solicitud de extracción nueva y corrige los errores en tu DAG.
Si sigues cualquiera de estos pasos, se activará una nueva verificación previa al envío y, después de la combinación, el trabajo de sincronización de DAG.