Managed Airflow (3e génération) | Managed Airflow (2e génération) | Managed Airflow (1re génération, version héritée)
Apache Airflow dispose d'une interface de ligne de commande (CLI) qui vous permet de déclencher et gérer des DAG, d'obtenir des informations sur les exécutions de DAG et sur les tâches, et d'ajouter ou supprimer des connexions et des utilisateurs.
Commandes de CLI Airflow compatibles
Airflow utilise la syntaxe de CLI Airflow, décrite dans la documentation Airflow.
Managed Airflow (3e génération) est compatible avec les commandes de CLI Airflow suivantes :
(Airflow 2 et 3) La commande
gcloud composer environments runexécute les commandes de CLI Airflow pour votre environnement. Certaines commandes sont bloquées et ne peuvent pas être exécutées. Consultez la documentation de référence de la commande pour obtenir la liste des commandes de CLI Airflow compatibles.(Airflow 3) L'outil de ligne de commande
airflowctlest compatible avec un sous-ensemble de commandes de CLI Airflow et les exécute à l'aide de l'API REST Airflow. Toutes les commandes disponibles dansairflowctlsont compatibles avec Managed Airflow. Assurez-vous que le compte Airflow de l'utilisateur dispose d'un rôle Airflow qui peut exécuter une commande spécifique.
Avant de commencer
Pour exécuter des commandes de CLI Airflow via Google Cloud CLI :
Votre compte Google doit disposer des autorisations nécessaires pour utiliser Google Cloud CLI avec Managed Airflow et exécuter des commandes de CLI Airflow.
Les commandes de CLI Airflow exécutées via Google Cloud CLI consomment le
environments.executeAirflowCommandquota.
Pour exécuter des commandes de CLI Airflow via l'
airflowctl outil de ligne de commande (dans Airflow 3) :
Votre compte Google doit disposer de l'autorisation
composer.environments.get. Elle est fournie par le rôle qui peut afficher les environnements Managed Airflow. L'outil de ligne de commandeairflowctlne nécessite pas d'autorisations pour exécuter les commandes de CLI Airflow.Les commandes de CLI Airflow exécutées via
airflowctlne consomment pas leenvironments.executeAirflowCommandquota.
Exécuter des commandes de CLI Airflow avec gcloud CLI
Pour exécuter des commandes de CLI Airflow dans vos environnements, utilisez gcloud CLI :
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Remplacez les éléments suivants :
ENVIRONMENT_NAME: nom de votre environnementLOCATION: région dans laquelle se trouve l'environnementSUBCOMMAND: l'une des commandes de CLI Airflow compatibles.SUBCOMMAND_ARGUMENTS: arguments de la commande Airflow CLI
Séparateur des arguments de sous-commande
Séparez les arguments de la commande de CLI Airflow spécifiée avec -- :
- Spécifiez les commandes CLI composées en tant que sous-commande.
- Spécifiez les arguments des commandes composées en tant qu'arguments de sous-commande, après un séparateur
--.
Exemple :
gcloud composer environments run example-environment \
dags list -- --output=json
Emplacement par défaut
La plupart des commandes gcloud composer nécessitent un emplacement. Vous pouvez le spécifier à l'
aide de l'option --location ou en
définissant l'emplacement par défaut.
Par exemple, pour déclencher un DAG nommé sample_quickstart avec l'ID 5077 dans votre environnement Managed Airflow :
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Exécuter des commandes de CLI Airflow avec airflowctl
L'outil de ligne de commande airflowctl est un utilitaire de ligne de commande
fourni par Airflow pour exécuter les commandes de CLI Airflow. Il est compatible avec un sous-ensemble de commandes de CLI Airflow et les exécute à l'aide de l'API REST Airflow. Toutes les commandes disponibles dans airflowctl sont compatibles avec Managed Airflow.
L'autorisation et l'authentification avec airflowctl dans Managed Airflow fonctionnent comme suit :
Étant donné que
airflowctlutilise l'API REST Airflow, assurez-vous que le compte utilisateur Airflow associé à votre compte Google ou à votre compte de service dispose d'un rôle Airflow avec suffisamment d'autorisations pour exécuter une commande. Par exemple, certaines commandes ne peuvent être exécutées que par les utilisateurs Airflow disposant du rôleAdmin.Le jeton d'API utilisé par
airflowctlest fourni avec lagcloud auth application-default print-access-tokencommande. Par défaut, le jeton a une durée de validité d'une heure. Vous pouvez la modifier avec l'argument--lifetimefourni à cette commande.
Pour vous authentifier avec airflowctl, exécutez la commande suivante :
airflowctl auth login \
--api-url WEB_SERVER_URL \
--api-token $(gcloud auth application-default print-access-token)
Remplacez les éléments suivants :
WEB_SERVER_URL: URL du serveur Web Airflow. Assurez-vous que cette URL ne se termine pas par une barre oblique ("/").
Exemple :
airflowctl auth login \
--api-url https://example-dot-us-central1.composer.googleusercontent.com \
--api-token $(gcloud auth application-default print-access-token)
Une fois que vous vous êtes authentifié avec airflowctl, vous pouvez exécuter des commandes de CLI Airflow :
airflowctl dags list
Exécuter des commandes de CLI Airflow via l'API Cloud Composer
Dans Managed Airflow (3e génération), vous pouvez exécuter des commandes de CLI Airflow via l'API Cloud Composer.
Exécuter une commande
Créez une requête API environments.executeAirflowCommand :
{
"environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"command": "AIRFLOW_COMMAND",
"subcommand": "AIRFLOW_SUBCOMMAND",
"parameters": [
"SUBCOMMAND_PARAMETER"
]
}
Remplacez les éléments suivants :
PROJECT_ID: ID du projetLOCATION: région dans laquelle se trouve l'environnementENVIRONMENT_NAME: nom de votre environnementAIRFLOW_COMMAND: commande de CLI Airflow que vous souhaitez exécuter, par exempledagsAIRFLOW_SUBCOMMAND: sous-commande de la commande de CLI Airflow que vous souhaitez exécuter, par exemplelist- (facultatif)
SUBCOMMAND_PARAMETER: paramètres de la sous-commande Si vous souhaitez utiliser plusieurs paramètres, ajoutez d'autres éléments à la liste.
Exemple :
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:executeAirflowCommand
{
"environment": "projects/example-project/locations/us-central1/environments/example-environment",
"command": "dags",
"subcommand": "list",
"parameters": [
"-o json",
"--verbose"
]
}
Interroger l'état de la commande
Une fois que vous avez exécuté une commande de CLI Airflow via l'API Cloud Composer, vérifiez si
elle a bien été exécutée en envoyant une requête
PollAirflowCommand et en inspectant les
champs de exitInfo pour détecter les erreurs et les codes d'état. Le champ output contient les lignes de journal.
Pour obtenir l'état d'exécution de la commande et récupérer les journaux, fournissez les valeurs executionId,
pod et podNamespace renvoyées par ExecuteAirflowCommandRequest :
Exemple :
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:pollAirflowCommand
{
"executionId": "a117da94-355d-4ad4-839e-ac39ccb0bf48",
"pod": "airflow-webserver-66d96b858f-tn96b",
"podNamespace": "airflow-2-10-2-build-13-226523e4",
"nextLineNumber": 1
}