Accéder à l'interface Web Airflow

Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (1re génération héritée)

Apache Airflow comprend une interface utilisateur Web appelée UI Airflow, que vous pouvez utiliser pour gérer les DAG Airflow, afficher les journaux d'exécution des DAG, surveiller Airflow et effectuer des actions administratives.

À propos du serveur Web Airflow

Chaque environnement Managed Airflow dispose d'un serveur Web qui exécute l'UI Airflow. Le serveur Web fait partie de l'architecture de l'environnement Airflow géré.

Avant de commencer

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

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

  • Airflow géré (3e génération) est compatible avec la fonctionnalité de contrôle des accès à l'UI Airflow (contrôle des accès basé sur les rôles Airflow ) pour l'UI Airflow.

  • Si l'option Commandes des API > Applications tierces non configurées > Ne pas autoriser les utilisateurs à accéder à des applications tierces est activée dans Google Workspace et que l'application Apache Airflow dans Airflow géré n'est pas explicitement autorisée, les utilisateurs ne peuvent pas accéder à l'UI Airflow, sauf s'ils autorisent explicitement l'application. Pour autoriser l'accès, suivez les étapes décrites dans Autoriser l'accès à l'UI Airflow dans Google Workspace.

  • Si les liaisons d'accès contextuel Chrome Enterprise Premium sont utilisées avec des niveaux d'accès qui reposent sur des attributs d'appareil et que l'application Apache Airflow dans Airflow géré n'est pas exemptée, il n'est pas possible d'accéder à l'UI Airflow en raison d'une boucle de connexion. Pour autoriser l'accès, suivez les étapes décrites dans Autoriser l'accès à l'UI Airflow dans les liaisons d'accès contextuel.

  • Si des règles d'entrée sont configurées dans un périmètre VPC Service Controls qui protège le projet et que la règle d'entrée qui autorise l'accès au service Managed Airflow utilise le type d'identité ANY_SERVICE_ACCOUNT ou ANY_USER_ACCOUNT, les utilisateurs ne peuvent pas accéder à l'UI Airflow et se retrouvent dans une boucle de connexion. Pour en savoir plus sur la résolution de ce scénario, consultez Autoriser l'accès à l'UI Airflow dans les règles d'entrée VPC Service Controls.

  • Airflow géré n'est pas compatible avec l'utilisation d' identités tierces dans les règles d' entrée et de sortie pour autoriser les opérations de l' UI Apache Airflow. Toutefois, vous pouvez utiliser le type d'identité ANY_IDENTITY dans les règles d'entrée et de sortie pour autoriser l'accès à toutes les identités, y compris les identités tierces. Pour en savoir plus sur le ANY_IDENTITY type d'identité, consultez Règles d'entrée et de sortie.

Accéder à l'UI Airflow

Dans Airflow géré (3e génération), le serveur Web Airflow s'exécute dans le projet locataire de votre environnement. Le serveur Web est déployé sur le domaine composer.googleusercontent.com et permet d'accéder à l'UI Airflow.

Airflow géré (3e génération) fournit un accès à l'interface en fonction des identités des utilisateurs et des liaisons de stratégie IAM définies pour les utilisateurs.

Accéder à l'UI Airflow depuis la Google Cloud console

Pour accéder à l'UI Airflow depuis la Google Cloud console :

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

    Accéder à la page Environnements

  2. Dans la colonne Serveur Web Airflow, cliquez sur le lien Airflow correspondant à votre environnement.

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

Obtenir l'URL de l'UI Airflow avec Google Cloud CLI

Vous pouvez accéder à l'UI Airflow depuis n'importe quel navigateur Web. Pour obtenir l'URL de l'UI Airflow, exécutez la commande suivante dans Google Cloud CLI :

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement

La commande Google Cloud CLI affiche les propriétés d'un environnement Airflow géré, y compris les URL de l'UI Airflow. Les URL sont listées sous airflowUri et airflowByoidUri :

config:
  airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
  airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com

Redémarrer le serveur Web

Lors du débogage ou du dépannage des environnements Airflow gérés, 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 restart-web-server dans Google Cloud CLI :

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

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement

Configurer l'accès réseau au serveur Web

Les paramètres d'accès au serveur Web Airflow ne dépendent pas de la configuration réseau de votre environnement. Vous configurez l'accès au serveur Web séparément. Par exemple, un environnement d'adresse IP privée peut toujours laisser l'UI Airflow accessible depuis Internet.

Il n'est pas possible de configurer les plages d'adresses IP autorisées pour qu'elles soient des adresses IP privées.

Console

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

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans la section Configuration réseau , recherchez l'élément Contrôle de l'accès au serveur Web , puis cliquez sur Modifier.

  5. Dans la boîte de dialogue Contrôle de l'accès réseau au serveur Web :

    • Pour autoriser l'accès au serveur Web Airflow à partir de toutes les adresses IP, sélectionnez Autoriser l'accès à partir de toutes les adresses IP.

    • Pour limiter l'accès à des plages d'adresses IP spécifiques, sélectionnez Autoriser l'accès uniquement depuis des adresses IP spécifiques. Dans le champ Plage d'adresses IP, spécifiez une plage d'adresses IP au format CIDR. Dans le champ Description, spécifiez une description facultative pour cette plage. Si vous souhaitez spécifier plusieurs plages, cliquez sur Ajouter une plage d'adresses IP.

    • Pour refuser l'accès pour toutes les adresses IP, sélectionnez Autoriser l'accès uniquement depuis des adresses IP spécifiques , puis cliquez sur Supprimer l'élément à côté de l'entrée de plage vide.

gcloud

Lorsque vous mettez à jour un environnement, les arguments suivants contrôlent les paramètres d'accès au serveur Web :

  • --web-server-allow-all fournit un accès à Airflow à partir de toutes les adresses IP. Il s'agit de l'option par défaut.

  • --update-web-server-allow-ip limite l'accès à des plages d'adresses IP sources spécifiques. Pour spécifier plusieurs plages d'adresses IP, utilisez cet argument plusieurs fois.

  • --web-server-deny-all interdit l'accès pour toutes les adresses IP.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --update-web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement
  • WS_IP_RANGE: plage d'adresses IP, au format CIDR, pouvant accéder à l'UI Airflow
  • WS_RANGE_DESCRIPTION : description de la plage d'adresses IP

Exemple :

gcloud composer environments update example-environment \
    --location us-central1 \
    --update-web-server-allow-ip ip_range=192.0.2.0/24,description="example range" \
    --update-web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"

API

  1. Rédigez une requête API [environments.patch][api-patch].

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.webServerNetworkAccessControl.

    2. Dans le corps de la requête, spécifiez comment les journaux des tâches Airflow doivent être enregistrés :

      • Pour autoriser l'accès à Airflow à partir de toutes les adresses IP, spécifiez un élément config vide (l'élément webServerNetworkAccessControl ne doit pas être présent).

      • Pour limiter l'accès à des plages d'adresses IP spécifiques, spécifiez une ou plusieurs plages dans allowedIpRanges.

      • Pour interdire l'accès pour toutes les adresses IP, spécifiez un élément webServerNetworkAccessControl vide. L'élément webServerNetworkAccessControl doit être présent, mais ne doit pas contenir d'élément allowedIpRanges.

{
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    }
  }
}

Remplacez les éléments suivants :

  • WS_IP_RANGE: plage d'adresses IP, au format CIDR, pouvant accéder à l'UI Airflow
  • WS_RANGE_DESCRIPTION : description de la plage d'adresses IP

Exemple :

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerNetworkAccessControl

{
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "example range"
        },
        {
          "value": "192.0.4.0/24",
          "description": "example range 2"
        }
      ]
    }
  }
}

Terraform

Dans le bloc allowed_ip_range, dans web_server_network_access_control, spécifiez les plages d'adresses IP pouvant accéder au serveur Web.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    web_server_network_access_control {

      allowed_ip_range {
        value = "WS_IP_RANGE"
        description = "WS_RANGE_DESCRIPTION"
      }

    }

  }
}

Remplacez les éléments suivants :

  • WS_IP_RANGE: plage d'adresses IP, au format CIDR, pouvant accéder à l'UI Airflow
  • WS_RANGE_DESCRIPTION : description de la plage d'adresses IP

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    web_server_network_access_control {
      allowed_ip_range {
        value = "192.0.2.0/24"
        description = "example range"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "example range 2"
      }

    }
}

Étape suivante