Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Ce guide explique comment créer un pipeline CI/CD pour tester, synchroniser et déployer des DAG dans votre environnement Cloud Composer à partir de votre un dépôt de clés.
Si vous souhaitez synchroniser uniquement les données d'autres services, consultez Transférer des données provenant d'autres services
Présentation du pipeline CI/CD
Le pipeline CI/CD qui permet de tester, de synchroniser et de déployer des DAG comprend les étapes suivantes :
Vous modifiez un DAG et transférez cette modification vers une branche de développement de votre dépôt.
Vous ouvrez une demande d'extraction sur la branche principale de votre dépôt.
Cloud Build exécute des tests unitaires pour vérifier que votre DAG est valide.
Votre requête d'extraction est approuvée et fusionnée dans la branche principale de votre dépôt.
Cloud Build synchronise votre environnement Cloud Composer de développement avec ces nouvelles modifications.
Vous vérifiez que le DAG se comporte comme prévu dans votre environnement de développement.
Si votre DAG fonctionne comme prévu, vous devez l'importer dans votre environnement de production Cloud Composer.
Objectifs
Avant de commencer
Ce guide part du principe que vous travaillez avec Environnements Cloud Composer: un environnement de développement et environnement de production.
Dans le cadre de ce guide, vous ne configurez qu'un pipeline CI/CD pour votre environnement de développement. Assurez-vous que l'environnement que vous utilisez n'est pas un environnement de production.
Ce guide suppose que vous avez stocké vos DAG et leurs tests dans un dépôt GitHub.
L'exemple de pipeline CI/CD illustre le contenu d'un exemple de dépôt. Les DAG et les tests sont stockées dans le répertoire
dags/
, avec des fichiers d'exigences, les contraintes et les fichiers de configuration Cloud Build stockés au premier niveau. L'utilitaire de synchronisation des DAG et ses exigences se trouvent dans le Répertoireutils
.
Créer une tâche de vérification avant envoi et des tests unitaires
La première tâche Cloud Build exécute une vérification avant l'envoi, qui exécute des tests unitaires pour vos DAG.
Ajouter des tests unitaires
Si ce n'est pas déjà fait,
tests unitaires pour vos DAG. Enregistrez ces tests en même temps que
DAG de votre dépôt, chacun portant le suffixe _test
. Par exemple, le fichier de test du DAG dans example_dag.py
est example_dag_test.py
. Il s'agit des tests exécutés en tant que vérification préalable à l'envoi dans votre dépôt.
Créer une configuration YAML Cloud Build pour la vérification avant l'envoi
Dans votre dépôt, créez un fichier YAML nommé test-dags.cloudbuild.yaml
qui configure votre tâche Cloud Build pour les vérifications préalables à l'envoi. Il comporte trois étapes :
- Installez les dépendances requises par vos DAG.
- Installez les dépendances requises par vos tests unitaires.
- Exécuter les tests du DAG
Créer le déclencheur Cloud Build pour la vérification avant l'envoi
Suivez le guide Créer des dépôts à partir de GitHub pour créer un déclencheur basé sur une application GitHub avec les configurations suivantes :
Nom :
test-dags
Événement: Demande d'extraction
Source : dépôt : sélectionnez votre dépôt.
Source : branche de base :
^main$
(remplacezmain
par le nom de votre branche de base du dépôt, si nécessaire)Source : contrôle des commentaires : non obligatoire
Configuration de la compilation – Fichier de configuration Cloud Build:
/test-dags.cloudbuild.yaml
(chemin d'accès à votre fichier de compilation)
Créer une tâche de synchronisation de DAG et ajouter un script d'utilitaire de DAG
Configurez ensuite un job Cloud Build qui exécute un script utilitaire dédié aux DAG. La script utilitaire de ce job synchronise vos DAG avec votre Environnement Cloud Composer après leur fusion avec la branche principale dans votre dépôt.
Ajouter le script d'utilitaire DAG
Ajoutez le script d'utilitaire DAG à votre dépôt. Ce script utilitaire copie tous les fichiers DAG dans le répertoire dags/
de votre
vers un répertoire temporaire, en ignorant tous les fichiers Python non DAG. La
utilise ensuite la bibliothèque cliente Cloud Storage pour importer tous les fichiers
de ce répertoire temporaire vers le répertoire dags/
dans votre
bucket de l'environnement Cloud Composer.
Créer une configuration YAML Cloud Build pour synchroniser les DAG
Dans votre dépôt, créez un fichier YAML nommé
add-dags-to-composer.cloudbuild.yaml
qui configure votre instance Cloud Build
de synchronisation des DAG. Il comporte deux étapes :
Installez les dépendances requises par le script d'utilitaire DAG.
Exécutez le script de l'utilitaire pour synchroniser les DAG de votre dépôt avec votre Cloud Composer.
Créer le déclencheur Cloud Build
Suivez les instructions pour créer des dépôts à partir de GitHub. pour créer un déclencheur basé sur une application GitHub avec les configurations suivantes:
Nom :
add-dags-to-composer
Événement: Déployer sur une branche
Source – Dépôt: choisissez votre dépôt
Source - Branche de base :
^main$
(remplacezmain
par le nom de la branche de base de votre dépôt, si nécessaire)Source : filtre par fichiers inclus (glob) :
dags/**
Configuration de la compilation – Fichier de configuration Cloud Build:
/add-dags-to-composer.cloudbuild.yaml
(chemin d'accès à votre fichier de compilation)
Dans "Configuration avancée", ajoutez Variables de substitution:
_DAGS_DIRECTORY
: répertoire dans lequel se trouvent les dags dans votre dépôt. Si vous utilisez l'exemple de dépôt de ce guide, il s'agit dedags/
._DAGS_BUCKET
: bucket Cloud Storage contenant le Répertoiredags/
de votre environnement Cloud Composer de développement environnement. Omettez le préfixegs://
. Par exemple,us-central1-example-env-1234ab56-bucket
.
Tester votre pipeline CI/CD
Dans cette section, vous allez suivre un flux de développement de DAG qui utilise vos nouvelles les déclencheurs Cloud Build créés.
Exécuter un job de pré-envoi
Créez une demande d'extraction sur votre branche principale pour tester votre build. Localisez votre sur la page. Cliquez sur Détails et sélectionnez Affichez plus d'informations sur Google Cloud Build pour consulter vos journaux de compilation dans le console Google Cloud.
Si la vérification préalable à l'envoi a échoué, consultez Résoudre les échecs de compilation.
Vérifier que votre DAG fonctionne dans votre environnement de développement Cloud Composer
Une fois votre demande d'extraction approuvée, fusionnez-la avec votre branche principale. Utilisez les
la console Google Cloud pour
afficher les résultats de la compilation. Si vous avez de nombreux
les déclencheurs Cloud Build, vous pouvez filtrer vos compilations en fonction de leur nom
add-dags-to-composer
Une fois la tâche de synchronisation Cloud Build terminée, le DAG synchronisé apparaît dans votre environnement Cloud Composer de développement. Vous pouvez alors vérifier que le DAG fonctionne comme prévu.
Ajouter le DAG à votre environnement de production
Une fois que le DAG fonctionne comme prévu, ajoutez-le manuellement à votre environnement de production
environnement. Pour ce faire, importez le fichier DAG dans le répertoire dags/
du bucket de votre environnement Cloud Composer de production.
Si votre job de synchronisation de DAG a échoué ou si votre DAG ne se comporte pas comme prévu dans votre dans l'environnement Cloud Composer de développement, consultez Corriger les échecs de compilation
Résoudre les échecs de compilation
Cette section explique comment résoudre les scénarios d'échec de compilation courants.
Que faire si la vérification avant l'envoi a échoué ?
Dans votre demande de tirage, cliquez sur Détails, puis sélectionnez Afficher plus d'informations sur Google Cloud Build pour afficher vos journaux de compilation dans la console Google Cloud. Utilisez ces journaux pour vous aider à déboguer le problème lié à votre DAG. Une fois les problèmes résolus, validez la correction et effectuez un push vers votre branche. La vérification préalable à l'envoi s'exécute à nouveau, et vous pouvez continuer à itérer en utilisant les journaux comme outil de débogage.
Que faire si mon job de synchronisation du DAG a échoué ?
Utilisez la console Google Cloud pour :
afficher les résultats de la compilation. Si vous avez de nombreux
les déclencheurs Cloud Build, vous pouvez filtrer vos compilations en fonction de leur nom
add-dags-to-composer
Examinez les journaux du job de compilation et résolvez le problème
les erreurs. Si vous avez besoin d'aide supplémentaire pour résoudre les erreurs, utilisez les canaux d'assistance.
Que faire si mon DAG ne fonctionne pas correctement dans mon environnement Cloud Composer ?
Si votre DAG ne fonctionne pas comme prévu dans votre processus de développement dans l'environnement Cloud Composer, ne promouvez pas manuellement le DAG l'environnement Cloud Composer de production. Effectuez plutôt l'une des opérations suivantes :
- Annulez la demande de tirage avec les modifications qui ont endommagé votre DAG pour le restaurer à l'état immédiatement antérieur à vos modifications (cela annule également tous les autres fichiers de cette demande de tirage).
- Créez une nouvelle demande d'extraction pour annuler manuellement les modifications apportées au DAG défectueux.
- Créez une demande de tirage pour corriger les erreurs de votre DAG.
Le suivi de l'une de ces étapes déclenche un nouveau contrôle préalable à l'envoi et, lors de la fusion, la tâche de synchronisation du DAG.
Étape suivante
- Exécuter des environnements Airflow locaux
- Écrire des DAG
- Planifier et déclencher des DAG
- Tester les DAG