Accéder à l'interface Web Airflow

Cloud Composer 1 | Cloud Composer 2

Apache Airflow comprend une interface Web qui vous permet de gérer les workflows (DAG) et 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 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 fait partie de l'architecture de l'environnement Cloud Composer.

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 au paramètre par défaut worker_refresh_interval dans Cloud Composer. Une erreur de serveur Web peut se produire si le serveur Web ne peut pas analyser tous les DAG dans l'intervalle d'actualisation.

Le temps de chargement des DAG peut dépasser 60 secondes s'il contient un grand nombre de fichiers DAG, ou si la charge de travail n'est pas complexe pour charger les fichiers DAG. Pour vous assurer que le serveur Web reste accessible quel que soit le temps de chargement des DAG, vous pouvez configurer le chargement asynchrone des DAG de manière à analyser et à charger des DAG en arrière-plan à un intervalle préconfiguré (disponibles dans composer-1.7.1-airflow-1.10.2 et les 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, consultez la page Résoudre les problèmes liés aux 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.

Redémarrer le serveur Web (bêta)

Lors du débogage ou du dépannage des environnements Cloud Composer, certains problèmes peuvent être résolus en redémarrant le serveur Web Airflow. Vous pouvez redémarrer le serveur Web à l'aide de l'API restartWebServer ou de la commande gcloud restart-web-server :

gcloud beta composer environments restart-web-server ENVIRONMENT_NAME
  --location=LOCATION

Avant de commencer

  • Vous devez disposer d'un rôle permettant d'afficher les environnements Cloud Composer. Pour plus d'informations, consultez la section Contrôle des accès.

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

  • La fonctionnalité de contrôle des accès basé sur les rôles (RBAC) pour l'interface Web Airflow est compatible avec les environnements Cloud Composer qui exécutent Composer 1.13.4 ou une version ultérieure, Airflow version 1.10.10 ou ultérieure, et Python 3.

Accéder à l'interface Web

Le service du serveur Web Airflow est déployé sur le domaine appspot.com et fournit un accès à 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 à partir de Google Cloud Console

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

  1. Dans Google Cloud Console, accédez à la page Environnements.

    Accéder à la page "Environnements"

  2. Dans la colonne Airflow webserver (Serveur Web Airflow), suivez le lien Airflow pour votre environnement.

  3. Connectez-vous avec le compte Google disposant des autorisations appropriées.

Limiter l'accès au serveur Web Airflow

Les environnements Composer vous permettent de limiter l'accès au serveur Web Airflow.

Vous pouvez bloquer tous les accès ou autoriser certaines plages d'adresses IP externes IPv4 ou IPv6 spécifiques.

Actuellement, vous ne pouvez pas configurer les plages d'adresses IP autorisées à l'aide d'adresses IP privé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

Lorsque le chargement des DAG asynchrones est activé, le serveur Web Airflow crée un nouveau processus. Ce processus charge les DAG en arrière-plan, envoie les DAG nouvellement chargés à des intervalles définis par l'option dagbag_sync_interval, puis se met en veille.

Le processus s'active régulièrement pour actualiser les DAG, l'intervalle étant défini par l'option collect_dags_interval.

Pour activer le chargement asynchrone des DAG, procédez comme suit:

  1. Désactivez la sérialisation des DAG. Le chargement asynchrone des DAG ne peut pas être utilisé avec la sérialisation des DAG. L'utilisation des options de configuration async_dagbag_loader et store_serialized_dags entraîne des erreurs HTTP 503 et rompt votre environnement.

  2. Ignorez les options de configuration Airflow suivantes:

    Section Clé Valeur Remarques
    webserver async_dagbag_loader True La valeur par défaut est False.
    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 long.