Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
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 CLI Airflow 2, décrite dans la documentation Airflow.
Pour obtenir la liste complète des commandes de CLI Airflow compatibles, consultez la documentation de référence de la commande gcloud composer environments run
.
Avant de commencer
Vous devez disposer d'autorisations pour utiliser Google Cloud CLI avec Cloud Composer et exécuter des commandes de la CLI Airflow.
Il n'est pas possible d'exécuter des commandes de CLI Airflow via
kubectl
dans Cloud Composer 3. Cette approche est obsolète et n'est requise que pour les versions de Cloud Composer antérieures à la version 2.4.0.
Exécuter des commandes de CLI Airflow
Pour exécuter les 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 où se trouve l'environnement.SUBCOMMAND
: l'une des commandes de CLI Airflow compatibles.SUBCOMMAND_ARGUMENTS
par les 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 dans une 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
ayant l'ID 5077
dans votre environnement Cloud Composer :
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Exécuter des commandes de CLI Airflow via l'API Cloud Composer
Dans Cloud Composer 3, 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 projet.LOCATION
: région où se trouve l'environnement.ENVIRONMENT_NAME
: nom de votre environnementAIRFLOW_COMMAND
: commande de la CLI Airflow que vous souhaitez exécuter, par exempledags
.AIRFLOW_SUBCOMMAND
: sous-commande de la commande de la 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"
]
}
État de la commande d'interrogation
Une fois que vous avez exécuté une commande de CLI Airflow via l'API Cloud Composer, vérifiez si la commande 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 des 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
}