Accéder à l'interface de ligne de commande Airflow

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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.

À propos des versions de syntaxe de la CLI

Airflow dans Cloud Composer 1 fournit deux syntaxes différentes pour les commandes de CLI :

Commandes de CLI Airflow compatibles

Pour obtenir la liste complète des commandes de CLI Airflow compatibles, consultez la documentation de référence gcloud composer environments run.

Avant de commencer

  • Vous devez disposer des autorisations suffisantes pour utiliser la ligne de commande gcloud avec Cloud Composer et exécuter les commandes CLI Airflow. Pour plus pour plus d'informations, consultez la section Contrôle des accès.

  • Dans les versions de Cloud Composer antérieures à la version 2.4.0, vous devez L'accès au plan de contrôle du cluster de votre environnement pour exécuter les commandes de CLI Airflow.

Exécuter des commandes de CLI Airflow

Pour exécuter les commandes de CLI Airflow dans vos environnements, utilisez gcloud :

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    SUBCOMMAND \
    -- SUBCOMMAND_ARGUMENTS

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • SUBCOMMAND par l'une des commandes de CLI Airflow compatibles.
  • SUBCOMMAND_ARGUMENTS par les arguments de la commande Airflow CLI.

Séparateur d'arguments de sous-commande

Séparez les arguments de la commande de CLI Airflow spécifiée avec -- :

Airflow 2

Pour la syntaxe Airflow 2 :

  • Spécifiez les commandes CLI composées en tant que sous-commande.
  • spécifier tous les arguments des commandes composées en tant qu'arguments de sous-commande ; après un séparateur --.
gcloud composer environments run example-environment \
    dags list -- --output=json

Airflow 1

Pour la syntaxe CLI Airflow 1.10 :

  • Spécifiez les commandes CLI en tant que sous-commande.
  • Spécifiez les arguments après un séparateur --.
gcloud composer environments run example-environment \
    list_dags -- --report

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.

Exemple

Par exemple, pour déclencher un DAG nommé sample_quickstart ayant l'ID 5077 dans votre environnement Cloud Composer :

Airflow 2

gcloud composer environments run example-environment \
    --location us-central1 dags trigger -- sample_quickstart \
    --run-id=5077

Airflow 1

gcloud composer environments run example-environment \
    --location us-central1 trigger_dag -- sample_quickstart \
    --run_id=5077

Exécuter des commandes sur un environnement d'adresse IP privée

Pour exécuter des commandes de CLI Airflow dans un environnement d'adresse IP privée, les exécuter sur une machine pouvant accéder point de terminaison du plan de contrôle. Les options peuvent varier en fonction de votre configuration de cluster privé.

Si l'accès public aux points de terminaison est désactivé dans le cluster de votre environnement, il n'est pas possible d'utiliser les commandes gcloud composer pour exécuter la CLI Airflow. Pour pouvoir exécuter des commandes de CLI Airflow, procédez comme suit:

  1. Créer une VM dans votre réseau VPC
  2. Procurez-vous les identifiants du cluster. Exécutez la commande suivante: bash gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION \ --project PROJECT \ --internal-ip
  • Utilisez kubectl pour exécuter votre commande Airflow. Exemple :
kubectl exec deployment/airflow-scheduler -n COMPOSER_NAMESPACE \
  --container airflow-scheduler -- airflow dags list

Remplacez COMPOSER_NAMESPACE par un espace de noms semblable à celui-ci: composer-2-0-28-airflow-2-3-394zxc12411 Vous pouvez trouver vos fichiers Cloud Composer dans la liste des charges de travail ou à l'aide de la commande kubectl get namespaces.

Si l'accès public aux points de terminaison est activé dans le cluster de votre environnement, vous pouvez et exécuter les commandes de CLI Airflow sur une machine dotée d'une adresse IP externe aux réseaux autorisés. Pour autoriser l'accès depuis votre machine, ajoutez le externe de votre machine au réseau VPC liste des réseaux autorisés.

Dépannage

Aucune connectivité au plan de contrôle du cluster

Lors de l'exécution de gcloud composer environments run ou kubectl, vous pouvez rencontrer l'erreur suivante:

Get "https://<IP Address>/api?timeout=32s": dial tcp <IP Address>:443: i/o timeout"

Problème constaté: ce message d'erreur indique qu'il n'y a pas de réseau la connectivité à partir d'un ordinateur où vous exécutez ces commandes.

Solution: suivez les consignes présentées dans les Exécuter des commandes dans un environnement IP privé ou suivez les instructions fournies dans le Section Expiration du délai de la commande kubectl.