Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Avant de déployer des DAG en production, vous pouvez Exécuter des sous-commandes de CLI Airflow pour analyser le code du DAG dans le contexte d'exécution du DAG.
Réaliser des tests pendant la création d'un DAG
Vous pouvez exécuter une instance de tâche en local et afficher le résultat du journal. L'affichage du résultat vous permet de vérifier la syntaxe et les erreurs de tâche. Le test en local ne vérifie pas les dépendances et ne communique pas non plus l'état à la base de données.
Nous vous recommandons de placer les DAG dans un dossier data/test
dans votre environnement de test.
Créer un répertoire de test
Dans le bucket de votre environnement, créez un répertoire de test et copiez-y vos DAG.
gcloud storage cp BUCKET_NAME/dags \
BUCKET_NAME/data/test --recursive
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket associé à votre environnement Cloud Composer.
Exemple :
gcloud storage cp gs://us-central1-example-environment-a12bc345-bucket/dags \
gs://us-central1-example-environment-a12bc345-bucket/data/test --recursive
Pour en savoir plus sur l'importation des DAG, consultez Ajouter et mettre à jour des DAG
Rechercher les erreurs de syntaxe
Pour rechercher les erreurs de syntaxe dans les DAG que vous avez importés dans /data/test
saisissez la commande gcloud
suivante:
Airflow 2
gcloud composer environments run \
ENVIRONMENT_NAME \
--location ENVIRONMENT_LOCATION \
dags list -- --subdir /home/airflow/gcs/data/test
Airflow 1
gcloud composer environments run \
ENVIRONMENT_NAME \
--location ENVIRONMENT_LOCATION \
list_dags -- -sd /home/airflow/gcs/data/test
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de l'environnement.ENVIRONMENT_LOCATION
: région où se trouve l'environnement.
Rechercher les erreurs de tâche
Pour rechercher les erreurs spécifiques aux tâches dans les DAG que vous avez importés dans le dossier /data/test
, exécutez la commande gcloud
suivante :
Airflow 2
gcloud composer environments run \
ENVIRONMENT_NAME \
--location ENVIRONMENT_LOCATION \
tasks test -- --subdir /home/airflow/gcs/data/test \
DAG_ID TASK_ID \
DAG_EXECUTION_DATE
Airflow 1
gcloud composer environments run \
ENVIRONMENT_NAME \
--location ENVIRONMENT_LOCATION \
test -- -sd /home/airflow/gcs/data/test DAG_ID \
TASK_ID DAG_EXECUTION_DATE
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de l'environnement.ENVIRONMENT_LOCATION
: région dans laquelle se trouve l'environnement.DAG_ID
: ID du DAG.TASK_ID
: ID de la tâche.DAG_EXECUTION_DATE
: date d'exécution du DAG. Cette date est utilisée pour les modèles. Quelle que soit la date spécifiée ici, le DAG s'exécute immédiatement.
Exemple :
Airflow 2
gcloud composer environments run \
example-environment \
--location us-central1 \
tasks test -- --subdir /home/airflow/gcs/data/test \
hello_world print_date 2021-04-22
Airflow 1
gcloud composer environments run example-environment \
--location us-central1 \
test -- -sd /home/airflow/gcs/data/test \
hello_world print_date 2021-04-22
Mettre à jour et tester un DAG déployé
Pour tester les mises à jour de vos DAG dans votre environnement de test, procédez comme suit :
- Copiez le DAG déployé que vous souhaitez mettre à jour vers
data/test
. - Mettez à jour le DAG.
- Testez le DAG.
- Assurez-vous que le DAG s'exécute correctement.
- Désactivez le DAG dans votre environnement de test.
- Accédez à la page DAG de l'interface utilisateur d'Airflow.
- Si le DAG que vous modifiez s'exécute en permanence, désactivez-le.
- Pour accélérer les tâches en attente, cliquez sur les tâches et marquez-les comme réussies.
- Déployez le DAG dans votre environnement de production.
- Désactivez le DAG dans votre environnement de production.
- Importez le DAG mis à jour dans le dossier
dags/
de votre environnement de production.
Questions fréquentes sur les tests des DAG
Comment isoler les exécutions de DAG dans les environnements de production et de test ?
Par exemple, Airflow dispose d'un dépôt global de code source dans le dossier dags/
, partagé par toutes les exécutions de DAG. Vous souhaitez mettre à jour le code source en production ou en test sans interférer avec l'exécution des DAG.
Airflow ne fournit pas de forte isolation DAG. Nous vous recommandons de maintenir des environnements de production et de test Cloud Composer distincts pour éviter que vos DAG de test n'interfèrent avec vos DAG de production.
Comment éviter les interférences de DAG lorsque j'effectue des tests d'intégration à partir de différentes branches GitHub ?
Utilisez des noms de tâches uniques pour éviter les interférences. Par exemple, vous pouvez ajouter le nom de la branche en tant que préfixe à vos ID de tâche.
Quelle est la méthode recommandée pour les tests d'intégration avec Airflow ?
Nous vous recommandons d'utiliser un environnement dédié pour les tests d'intégration avec Airflow. Une méthode pour signaler le succès de l'exécution du DAG consiste à écrire dans un fichier d'un dossier Cloud Storage et à en vérifier le contenu dans vos propres cas de test d'intégration.
Comment collaborer efficacement avec d'autres contributeurs DAG ?
Chaque contributeur peut disposer d'un sous-répertoire dans le dossier data/
pour le développement.
Les DAG ajoutés au dossier data/
ne sont pas automatiquement sélectionnés par le serveur Web ou le programmeur Airflow.
Les contributeurs DAG peuvent créer des exécutions de DAG manuelles à l'aide de la commande gcloud composer environments run
et de la sous-commande test
avec l'option --subdir
, afin de spécifier le répertoire de développement du contributeur.
Exemple :
Airflow 2
gcloud composer environments run test-environment-name \
tasks test -- dag-id task-id execution-date \
--subdir /home/airflow/gcs/data/alice_dev
Airflow 1
gcloud composer environments run test-environment-name \
test -- dag-id task-id execution-date \
--subdir /home/airflow/gcs/data/alice_dev
Comment maintenir la synchronisation des environnements de déploiement et de production ?
Pour gérer les accès, procédez comme suit :
Pour l'authentification, utilisez des comptes de service.
Pour le contrôle des accès, utilisez les rôles et autorisations de Cloud Identity and Access Management et de Cloud Composer.
Pour déployer du développement jusqu'à la production, procédez comme suit :
Assurez une configuration cohérente, telle que les variables d'environnement et les packages PyPI.
Assurez la cohérence des arguments du DAG. Pour éviter le codage en dur, nous vous recommandons d'utiliser des macros et des variables Airflow.
Exemple :
Airflow 2
gcloud composer environments run test-environment-name \ variables set -- DATA_ENDPOINT_KEY DATA_ENDPOINT_VALUE
Airflow 1
gcloud composer environments run test-environment-name \ variables -- --set DATA_ENDPOINT_KEY DATA_ENDPOINT_VALUE
Étape suivante
- Découvrez comment résoudre les problèmes liés aux DAG.
- Découvrez comment ajouter et mettre à jour des DAG.
- Tester, synchroniser et déployer vos DAG à l'aide du contrôle des versions