Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Apache Airflow inclut 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 tâches d'administration.
À propos du serveur Web Airflow
Chaque environnement Cloud Composer dispose d'un serveur Web qui exécute l'interface Airflow. Le serveur Web fait partie de l'architecture de l'environnement Cloud Composer.
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 d'un environnement, Cloud Composer configure l'URL du serveur Web qui exécute l'UI Airflow. L'URL n'est pas personnalisable.
Cloud Composer 3 est compatible avec la fonctionnalité de contrôle des accès de l'interface utilisateur d'Airflow (contrôle des accès basé sur les rôles d'Airflow) pour l'interface utilisateur d'Airflow.
Si l'option Commandes des API > Applications tierces non configurées > Ne pas autoriser les utilisateurs à accéder aux applications tierces est activée dans Google Workspace et que l'application Apache Airflow dans Cloud Composer n'est pas explicitement autorisée, les utilisateurs ne peuvent pas accéder à l'interface utilisateur d'Airflow, sauf s'ils autorisent explicitement l'application. Pour autoriser l'accès, suivez les étapes décrites dans la section Autoriser l'accès à l'UI Airflow dans Google Workspace.
Si les liaisons d'accès contextuelles Chrome Enterprise Premium sont utilisées avec des niveaux d'accès qui reposent sur des attributs d'appareil et qu'Apache Airflow dans l'application Cloud Composer n'est pas exempté, il n'est pas possible d'accéder à l'interface utilisateur Airflow en raison d'une boucle de connexion. Pour autoriser l'accès, suivez les étapes décrites dans Autoriser l'accès à l'interface utilisateur d'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 permet d'accéder au service Cloud Composer utilise le type d'identité
ANY_SERVICE_ACCOUNT
ouANY_USER_ACCOUNT
, les utilisateurs ne peuvent pas accéder à l'interface utilisateur d'Airflow, ce qui entraîne une boucle de connexion. Pour en savoir plus sur la résolution de ce scénario, consultez la section Autoriser l'accès à l'interface utilisateur d'Airflow dans les règles d'entrée VPC Service Controls.
Accéder à l'interface utilisateur d'Airflow
Dans Cloud Composer 3, 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.
Cloud Composer 3 permet d'accéder à l'interface en fonction des identités des utilisateurs et des liaisons de stratégie IAM définies pour eux.
Accéder à l'UI d'Airflow depuis la console Google Cloud
Pour accéder à l'interface utilisateur d'Airflow depuis la console Google Cloud:
Dans la console Google Cloud, accédez à la page Environnements.
Dans la colonne Serveur Web Airflow, cliquez sur le lien Airflow correspondant à votre environnement.
Connectez-vous avec un compte Google disposant des autorisations appropriées.
Obtenir l'URL de l'interface utilisateur d'Airflow avec la Google Cloud CLI
Vous pouvez accéder à l'interface utilisateur d'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 environnementLOCATION
: région où se trouve l'environnement.
La commande de la CLI Google Cloud affiche les propriétés d'un environnement Cloud Composer, y compris les URL de l'UI Airflow.
Les URL sont listées comme airflowUri
et airflowByoidUri
:
- L'URL
airflowUri
est utilisée par les comptes Google. - L'adresse URL
airflowByoidUri
est utilisée par les identités externes si vous configurez la fédération d'identité des employés dans votre projet.
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 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 restart-web-server
dans Google Cloud CLI:
gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
--location=LOCATION
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de votre environnementLOCATION
: 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 plutôt l'accès au serveur Web séparément. Par exemple, un environnement d'adresse IP privée peut toujours laisser l'interface utilisateur d'Airflow accessible depuis Internet.
Il n'est pas possible de configurer les plages d'adresses IP autorisées en tant qu'adresses IP privées.
Console
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Dans la section Configuration réseau, recherchez l'élément Contrôle de l'accès au serveur Web, puis cliquez sur Modifier.
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 du 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.--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 \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de votre environnementLOCATION
: région où se trouve l'environnement.WS_IP_RANGE
: plage d'adresses IP, au format CIDR, pouvant accéder à l'interface utilisateur d'Airflow.WS_RANGE_DESCRIPTION
: description de la plage d'adresses IP.
Exemple :
gcloud composer environments update example-environment \
--location us-central1 \
--web-server-allow-ip ip_range=192.0.2.0/24,description="example range" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"
API
Créez une requête API [
environments.patch
][api-patch].Dans cette requête :
Dans le paramètre
updateMask
, spécifiez le masqueconfig.webServerNetworkAccessControl
.Dans le corps de la requête, spécifiez comment les journaux de 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émentwebServerNetworkAccessControl
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émentwebServerNetworkAccessControl
doit être présent, mais ne doit pas contenir d'élémentallowedIpRanges
.
{
"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'interface utilisateur d'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'interface utilisateur d'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
- Contrôle des accès à l'interface utilisateur d'Airflow
- Résoudre les problèmes liés au serveur Web Airflow