Airflow-Befehlszeile

Apache Airflow bietet eine Befehlszeile, mit der Sie Airflow-Umgebungen verwalten können. Über die Befehlszeile können Sie Aufgaben wie das Verwalten von Workflows, das Ändern der Airflow-Umgebung und das Abrufen von Loginformationen ausführen.

Cloud Composer vereinfacht die Verwendung von Befehlen der Airflow-Befehlszeile mit dem Google Cloud SDK. Nach der Installation können Sie mit dem gcloud-Befehlszeilentool und mit dem Befehl gcloud composer environments run Unterbefehle der Airflow-Befehlszeile ausführen.

Vorbereitung

Die folgenden Berechtigungen sind erforderlich, um auf das gcloud-Befehlszeilentool (Airflow-Befehlszeile) in der Cloud Composer-Umgebung zugreifen zu können:

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

Weitere Informationen finden Sie unter Zugriffssteuerung.

Befehle der Airflow-Befehlszeile ausführen

Mit dem folgenden Befehl können Sie Befehle der Airflow-Befehlszeile in einer Cloud Composer-Umgebung ausführen:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION SUBCOMMAND

Für die meisten gcloud composer-Befehle ist ein Speicherort erforderlich. Sie können den Speicherort mit dem Flag --location oder durch Festlegen eines Standardspeicherorts angeben.

Beispielsweise haben Sie die Möglichkeit, mit dem folgenden Befehl einen DAG namens sample_quickstart mit der ID 5077 in Ihrer Cloud Composer-Umgebung auszulösen:

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

Für eine Suche nach Syntaxfehlern in DAGs in einem Verzeichnis test/ geben Sie z. B. Folgendes ein:

gcloud composer environments run test-environment \
     --location us-central1 \
     list_dags -- -sd /home/airflow/gcs/data/test

Befehle in einer privaten IP-Umgebung ausführen

Zum Ausführen von Befehlen der Airflow-Befehlszeile in einer privaten IP-Umgebung müssen Sie sie auf einem Computer aufrufen, der Zugriff auf den Masterendpunkt des GKE-Clusters hat. Die Optionen variieren dabei abhängig von Ihrer privaten Clusterkonfiguration.

Wenn der Zugriff auf öffentliche Endpunkte in Ihrem Cluster deaktiviert ist, müssen Sie die Airflow-Befehle von einer VM im selben VPC-Netzwerk ausführen. Zur Aktivierung dieses Pfads erstellen Sie eine VM in Ihrem VPC-Netzwerk.

Wenn der öffentliche Endpunktzugriff und autorisierte Masternetzwerke aktiviert sind, können Sie Airflow-Befehle auch von einem Computer mit einer öffentlichen IP-Adresse ausführen, die zu autorisierten Masternetzwerken hinzugefügt wurde. Zur Aktivierung des Zugriffs über Ihren Computer passen Sie die Konfiguration des GKE-Clusters entsprechend an:

  1. Ermitteln Sie den Namen des GKE-Clusters, der Ihre Composer-Umgebung ausführt, mithilfe des folgenden Befehls:

    gcloud beta composer environments describe ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    
  2. Ermitteln Sie die öffentliche IP-Adresse des Computers, auf dem in Ihrer Umgebung Befehle der Airflow-Befehlszeile ausgeführt werden sollen. Wenn Sie Cloud Shell nutzen, verwenden Sie zum Ermitteln der externen IP-Adresse von Cloud Shell dig:

    dig +short myip.opendns.com @resolver1.opendns.com
    
  3. Fügen Sie die externe Adresse Ihres Computers der Liste autorisierter Masternetzwerke in Ihrem Cluster hinzu:

    gcloud container clusters update GKE_CLUSTER \
        --enable-master-authorized-networks \
        --master-authorized-networks EXISTING_AUTH_NETS,SHELL_IP/32
    

    Dabei gilt:

    • EXISTING_AUTH_NETS ist Ihre bestehende Liste autorisierter Masternetzwerke. Sie können Ihre autorisierten Masternetzwerke mit dem folgenden Befehl ermitteln:

      gcloud container clusters describe GKE_CLUSTER \
          --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • SHELL_IP ist die externe IP-Adresse Ihrer Cloud Shell.

Sie sollten nun in der Lage sein, Befehle der Airflow-Befehlszeile in Ihrer privaten IP-Umgebung auszuführen.

Unterstützte Airflow-Befehle

Cloud Composer unterstützt die folgenden Befehle für Umgebungen, in denen Airflow 1.9.0 und höher ausgeführt wird:

  • backfill
  • clear
  • connections
  • dag_state
  • kerberos
  • list_dags
  • list_tasks
  • pause
  • pool
  • render
  • run
  • task_failed_deps
  • task_state
  • test
  • trigger_dag
  • unpause
  • variables
  • version

Airflow 1.10.1 unterstützt den folgenden Befehl:

  • delete_dag

Airflow 1.10.2 unterstützt die folgenden Befehle:

  • list_dag_runs
  • next_execution