Airflow administrado (3ª gen.) | Airflow administrado (2ª gen.) | Airflow administrado (1ª gen. heredada)
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 Airflow administrado desde tu repositorio de GitHub.
Si solo quieres sincronizar datos de otros servicios, consulta Transfiere datos de otros servicios.
Descripción general de la canalización de CI/CD
La canalización de CI/CD para probar, sincronizar e implementar DAG tiene los siguientes pasos:
Realizas 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.
Se aprueba tu solicitud de extracción y se combina con la rama principal de tu repositorio.
Cloud Build sincroniza tu entorno de Airflow administrado de desarrollo con estos cambios nuevos.
Verificas que el DAG funcione como se espera en tu entorno de desarrollo
Si tu DAG funciona como se espera, lo subes a tu entorno de Airflow administrado de producción.
Objetivos
- Ejecuta una verificación previa al envío automatizada con Cloud Build. Esta verificación ejecuta pruebas de unidades para un DAG.
- Sincroniza los DAG en tu entorno de Managed Service para Apache Airflow de desarrollo con los DAG en tu repositorio de GitHub.
Antes de comenzar
En esta guía, se supone que trabajas con dos entornos de Airflow administrado idénticos: un entorno de desarrollo y un entorno de producción.
Para los fines de esta guía, configurarás una canalización de CI/CD solo para el entorno de desarrollo. Asegúrate de que el entorno que usas no sea un entorno de producción.
En esta guía, se supone que tienes tus DAG y sus pruebas almacenados en un repositorio de GitHub.
La canalización de CI/CD de ejemplo muestra el contenido de un repositorio de ejemplo. Los DAG y las pruebas se almacenan en el directorio
dags/, con archivos de requisitos, el archivo de restricciones y los archivos de configuración de compilación de Cloud Build almacenados en el nivel superior. La utilidad de sincronización de DAG y sus requisitos se encuentran en el directorioutils.
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 pruebas de unidades para tus DAG.
Agrega 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 una con el sufijo _test. Por ejemplo, el archivo de prueba para el 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 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 configure tu trabajo de Cloud Build para las verificaciones previas al envío. En él, hay tres pasos:
- Instala las dependencias que necesitan tus DAG.
- Instala las dependencias que necesitan tus pruebas de unidades.
- Ejecuta las pruebas de DAG.
Crea el activador de compilación de Cloud Build para la verificación previa al envío
Sigue la guía Compila repositorios desde GitHub para crear un activador basado en la app de GitHub con las siguientes configuraciones:
Nombre:
test-dagsEvento: Solicitud de extracción
Fuente : Repositorio: Elige tu repositorio
Fuente : Rama base:
^main$(cambiamainpor el nombre de la rama base de tu repositorio, si es necesario)Fuente : Control de comentarios: No es 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 este trabajo sincroniza tus DAG con tu entorno de Airflow administrado después de que se combinan con la rama principal de tu repositorio.
Agrega la secuencia de comandos de utilidad de DAG
Agrega la secuencia de comandos de utilidad de DAG a tu repositorio. Esta secuencia de comandos de utilidad copia todos los archivos DAG en el directorio dags/ de tu repositorio a un directorio temporal, ignorando todos los archivos Python que no sean DAG. Luego, la secuencia de comandos usa la biblioteca cliente de Cloud Storage para subir todos los archivos de ese directorio temporal al directorio dags/ en el bucket de tu entorno de Airflow administrado.
Crea la configuración YAML de Cloud Build para sincronizar DAG
En tu repositorio, crea un archivo YAML llamado add-dags-to-composer.cloudbuild.yaml que configure tu trabajo de Cloud Build para sincronizar DAG. En él, hay dos pasos:
Instala 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 Airflow administrado.
Crea el activador de compilación de Cloud Build
Sigue la guía Compila repositorios desde GitHub para crear un activador basado en la app de GitHub con las siguientes configuraciones:
Nombre:
add-dags-to-composerEvento: Enviar a una rama
Fuente : Repositorio: Elige tu repositorio
Fuente : Rama base:
^main$(cambiamainpor el 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- El directorio donde se encuentran los DAG en tu repositorio. Si usas el repositorio de ejemplo de esta guía, esdags/._DAGS_BUCKET- El bucket de Cloud Storage que contiene eldags/directorio en tu entorno de Airflow administrado de desarrollo. 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 utiliza 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 tu compilación. Ubica 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 Google Cloud consola.
Si falló la verificación previa al envío, consulta Cómo abordar las fallas de compilación.
Valida que tu DAG funcione en tu entorno de desarrollo
Después de que se apruebe tu solicitud de extracción, combínala con tu rama principal. Usa la
Google Cloud consola para
ver los resultados de la compilación. Si tienes muchos activadores de Cloud Build, puedes filtrar tus compilaciones por el nombre del activador add-dags-to-composer.
Después de que el trabajo de sincronización de Cloud Build se realice correctamente, el DAG sincronizado aparecerá en tu entorno de Airflow administrado de desarrollo. Allí, puedes validar que el DAG funcione como se espera.
Agrega el DAG a tu entorno de producción
Después de que el DAG funcione como se espera, agrégalo manualmente a tu entorno de producción. Para ello, sube el archivo DAG
al directorio dags/ en el bucket de tu entorno de Airflow administrado de producción.
Si falló el trabajo de sincronización de DAG o si tu DAG no se comporta como se espera en tu entorno de Airflow administrado 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 falla la verificación previa al envío?
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 Google Cloud consola. Usa estos registros para depurar el problema con tu DAG. Una vez que hayas resuelto los problemas, confirma la corrección y envíala a tu rama. La verificación previa al envío se ejecuta de nuevo y puedes seguir iterando con los registros como herramienta de depuración.
¿Qué sucede si falla mi trabajo de sincronización de DAG?
Usa la Google Cloud consola para
ver los resultados de la compilación. Si tienes muchos activadores de Cloud Build, puedes filtrar tus compilaciones por 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, usa
los canales de asistencia.
¿Qué sucede si mi DAG no funciona correctamente en mi entorno de Airflow administrado?
Si tu DAG no funciona como se espera en tu entorno de Airflow administrado de desarrollo, no lo promuevas manualmente a tu entorno de Airflow administrado de producción. Como alternativa, toma una de las siguientes medidas:
- Revierte la solicitud de extracción con los cambios que interrumpieron tu DAG para restablecerlo al estado inmediatamente anterior a los cambios (esto también revierte todos los demás archivos de esa solicitud de extracción).
- Crea una nueva solicitud de extracción para revertir manualmente los cambios en el DAG interrumpido.
- Crea una nueva solicitud de extracción para corregir los errores en tu DAG.
Si sigues alguno de estos pasos, se activará una nueva verificación previa al envío y, cuando se combine, el trabajo de sincronización de DAG.