Interface Web Airflow

Apache Airflow comprend une interface Web qui vous permet de gérer les workflows (DAG), de gérer l'environnement Airflow et d'effectuer des tâches d'administration. Par exemple, vous pouvez utiliser l'interface Web pour examiner la progression d'un DAG, configurer une nouvelle connexion de données ou consulter les journaux issus des exécutions précédentes du DAG.

Serveur Web Airflow

Chaque environnement Cloud Composer dispose d'un serveur Web qui exécute l'interface Web Airflow. Le serveur Web est distinct du cluster GKE de votre environnement et s'exécute sur une instance App Engine avec un type de machine fixe.

Le serveur Web analyse les fichiers de définition du DAG dans le dossier dags/, et doit pouvoir accéder aux données et aux ressources du DAG pour le charger et diffuser des requêtes HTTP.

Le serveur Web actualise les DAG toutes les 60 secondes, ce qui correspond à la valeur worker_refresh_interval par défaut dans Cloud Composer. Une erreur de serveur Web peut survenir si le serveur Web ne peut pas analyser tous les DAG pendant l'intervalle d'actualisation.

Le chargement des DAG peut prendre plus de 60 secondes s'il y a un grand nombre de fichiers DAG ou si une charge de travail non négligeable est nécessaire pour charger les fichiers DAG. Pour vous assurer que le serveur Web reste accessible quel que soit temps de chargement des DAG, vous pouvez configurer le chargement asynchrone des DAG pour analyser et charger des DAG en arrière-plan selon un intervalle préconfiguré (disponible dans composer-1.7.1-airflow-1.10.2 et versions ultérieures). Cette configuration peut également réduire le temps d'actualisation des DAG.

Outre le dépassement de l'intervalle d'actualisation des nœuds de calcul, le serveur Web peut dans la plupart des cas gérer de manière optimale les échecs de chargement des DAG. Les DAG qui provoquent le plantage ou la fermeture du serveur Web peuvent entraîner l'affichage d'erreurs dans le navigateur. Pour en savoir plus, reportez-vous à la section Dépanner les DAG.

Si vous continuez à rencontrer des problèmes de serveur Web en raison de l'analyse des DAG, nous vous recommandons d'utiliser le chargement asynchrone des DAG.

Avant de commencer

  • L'autorisation suivante est requise pour accéder au serveur Web Airflow dans l'environnement Cloud Composer : composer.environments.get. Pour en savoir plus, reportez-vous à la section Contrôle des accès Cloud Composer.

  • Lors de la création d'un environnement, Cloud Composer configure l'URL du serveur Web qui exécute l'interface Web Airflow. L'URL n'est pas personnalisable.

  • Pour les environnements Cloud Composer exécutant Airflow 1.10, la fonctionnalité RBAC (Contrôle des accès basé sur les rôles) pour l'interface Web Airflow n'est pas disponible.

Accéder à l'interface Web

Le service du serveur Web Airflow est déployé sur le domaine appspot.com et permet d'accéder à l'interface Web Airflow. Identity-Aware Proxy protège l'interface, en contrôlant l'accès en fonction de l'identité des utilisateurs.

Il peut s'écouler 25 minutes après la création d'un environnement Cloud Composer avant que l'interface Web termine l'hébergement et devienne accessible.

Accéder à l'interface Web via Google Cloud Console

Pour accéder à l'interface Web Airflow depuis Google Cloud Console, procédez comme suit :

  1. Pour afficher les environnements Cloud Composer existants, ouvrez la page Environnements.

    Ouvrir la page Environnements

  2. Dans la colonne Serveur Web Airflow, cliquez sur l'icône de nouvelle fenêtre correspondant à l'environnement pour lequel vous souhaitez afficher l'interface Web Airflow.
  3. Connectez-vous avec le compte Google disposant des autorisations appropriées.

Récupérer l'URL de l'interface Web via l'outil de ligne de commande gcloud

Vous pouvez accéder à l'interface Web Airflow depuis n'importe quel navigateur Web. Pour obtenir l'URL de l'interface Web, saisissez la commande gcloud suivante :

gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION

où :

  • ENVIRONMENT_NAME est le nom de l'environnement.
  • LOCATION est la région Compute Engine dans laquelle se trouve l'environnement.

La commande gcloud affiche les propriétés d'un environnement Cloud Composer, y compris l'URL de l'interface Web. L'URL est répertoriée en tant que airflowUri.

airflowUri: https://uexamplebcd3fff-tp.appspot.com/
  dagGcsPrefix: gs://us-central1-example-environment-00a47695-bucket/dags
  gkeCluster: projects/example-project/zones/us-central1-a/clusters/us-central1-example-environment-00a47695-gke
  nodeConfig:
    diskSizeGb: 100
    location: projects/example-project/zones/us-central1-a
    machineType: projects/example-project/zones/us-central1-a/machineTypes/n1-standard-1
    network: projects/example-project/global/networks/default
    oauthScopes:
    - https://www.googleapis.com/auth/cloud-platform
    serviceAccount: N13597NNN465-compute@developer.gserviceaccount.com
  nodeCount: 3
  softwareConfig:
    imageVersion: composer-0.5.1-airflow-1.9.0
createTime: '2018-05-19T02:13:36.749Z'
name: projects/example-project/locations/us-central1/environments/example-environment
state: RUNNING
updateTime: '2018-05-19T02:30:21.387Z'
uuid: 66bd6a28-5b48-4da3-a0aa-898199b569da

Configurer le chargement asynchrone des DAG

Avec le chargement asynchrone des DAG (webserver-async_dagbag_loader), le serveur Web crée un processus. Celui-ci charge les DAG en arrière-plan, envoie les DAG nouvellement chargés (dagbag_sync_interval), puis se met en veille.

Le processus s'active régulièrement pour recharger les DAG (collect_dags_interval). Il nécessite composer-1.7.1-airflow-1.10.2 ou version ultérieure.

Pour configurer le chargement asynchrone des DAG, remplacez les configurations Airflow suivantes :

Section et configuration Notes
webserver-async_dagbag_loader = True La valeur par défaut est "False" (faux).
webserver-collect_dags_interval = 30 La valeur par défaut est 30. Utilisez une valeur plus faible pour obtenir des actualisations plus rapides.
webserver-dagbag_sync_interval = 10 La valeur par défaut est 10.
webserver-worker_refresh_interval = 3600 La valeur par défaut est 60. Avec le chargement asynchrone des DAG, vous pouvez utiliser un intervalle d'actualisation plus grand.

Notez que la fonctionnalité de sérialisation des DAG doit être désactivée en cas d'utilisation du chargement asynchrone des DAG.