Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Apache Airflow bietet eine Befehlszeile, mit der Sie Aufgaben wie das Auslösen und Verwalten von DAGs, das Abrufen von Informationen zu DAG-Ausführungen und -Aufgaben, das Hinzufügen und Löschen von Verbindungen und Nutzern ausführen können.
Über CLI-Syntaxversionen
Airflow in Cloud Composer 1 bietet zwei verschiedene Syntaxen für Befehlszeilenbefehle:
Airflow 1.10-Befehlszeilensyntax, die in Cloud Composer-Umgebungen mit Airflow 1.10 verfügbar ist.
Airflow 2-Befehlszeilensyntax, verfügbar in Cloud Composer-Umgebungen mit Airflow 2
Unterstützte Befehle der Airflow-Befehlszeile
Eine vollständige Liste der unterstützten Airflow-Befehlszeilenbefehle finden Sie in der Referenz zu gcloud composer environments run
.
Hinweise
Sie benötigen die entsprechenden Berechtigungen, um das
gcloud
-Befehlszeilentool mit Cloud Composer zu verwenden und Befehle der Airflow-Befehlszeile auszuführen. Weitere Informationen finden Sie unter Zugriffssteuerung.In Cloud Composer-Versionen vor 2.4.0 benötigen Sie Zugriff auf die Steuerungsebene des Clusters Ihrer Umgebung, um Airflow-Befehlszeilenbefehle auszuführen.
Befehle der Airflow-Befehlszeile ausführen
Zum Ausführen von Befehlen der Airflow-Befehlszeile in Ihren Umgebungen verwenden Sie gcloud
:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.SUBCOMMAND
durch einen der unterstützten Airflow-Befehlszeilenbefehle.SUBCOMMAND_ARGUMENTS
durch Argumente für den Airflow-Befehlszeilenbefehl.
Trennzeichen für Unterbefehlsargumente
Trennen Sie die Argumente für den angegebenen Airflow-Befehlszeilenbefehl durch --
:
Airflow 2
Für die Syntax der Airflow-2-Befehlszeile:
- Geben Sie zusammengesetzte CLI-Befehle als Unterbefehl an.
- Geben Sie alle Argumente für zusammengesetzte Befehle als Unterbefehlsargumente nach einem
--
-Trennzeichen an.
gcloud composer environments run example-environment \
dags list -- --output=json
Airflow 1
Für die Syntax der Airflow-1.10-Befehlszeile:
- Geben Sie CLI-Befehle als Unterbefehl an.
- Geben Sie alle Argumente nach dem Trennzeichen
--
an.
gcloud composer environments run example-environment \
list_dags -- --report
Standardort
Für die meisten gcloud composer
-Befehle ist ein Speicherort erforderlich. Sie können den Speicherort mit dem Flag --location
oder durch Festlegen des Standardspeicherorts angeben.
Beispiel
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:
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
Befehle in einer privaten IP-Umgebung ausführen
Wenn Sie Befehle der Airflow-Befehlszeile in einer privaten IP-Umgebung ausführen möchten, führen Sie sie auf einer Maschine aus, die auf den Endpunkt der Steuerungsebene des GKE-Cluster zugreifen kann. Die Optionen variieren dabei abhängig von Ihrer privaten Clusterkonfiguration.
Wenn der Zugriff auf öffentliche Endpunkte im Cluster Ihrer Umgebung deaktiviert ist, kann die Airflow-Befehlszeile nicht mit gcloud composer
-Befehlen ausgeführt werden.
Führen Sie die folgenden Schritte aus, um Befehle der Airflow-Befehlszeile ausführen zu können:
- VM in Ihrem VPC-Netzwerk erstellen
- Rufen Sie Clusteranmeldedaten ab. Führen Sie den folgenden Befehl aus:
bash gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION \ --project PROJECT \ --internal-ip
- Führen Sie den Airflow-Befehl mit
kubectl
aus. Beispiel:
kubectl exec deployment/airflow-scheduler -n COMPOSER_NAMESPACE \
--container airflow-scheduler -- airflow dags list
Ersetzen Sie COMPOSER_NAMESPACE
durch einen Namespace wie diesen: composer-2-0-28-airflow-2-3-394zxc12411
. Sie finden Ihren Cloud Composer in der Liste der Arbeitslasten oder mithilfe des Befehls kubectl get namespaces
.
Wenn der Zugriff auf öffentliche Endpunkte im Cluster Ihrer Umgebung aktiviert ist, können Sie Befehle der Airflow-Befehlszeile auch auf einer Maschine mit einer externen IP-Adresse ausführen, die autorisierten Netzwerken hinzugefügt wurde. Fügen Sie die externe Adresse Ihres Computers der Liste der autorisierten Netzwerke Ihrer Umgebung hinzu, um den Zugriff von Ihrem Computer aus zu ermöglichen.
Fehlerbehebung
Keine Verbindung zur Steuerungsebene des Clusters
Beim Ausführen von gcloud composer environments run
- oder kubectl
-Befehlen kann der folgende Fehler auftreten:
Get "https://<IP Address>/api?timeout=32s": dial tcp <IP Address>:443: i/o timeout"
Symptom: Diese Fehlermeldung zeigt an, dass keine Netzwerkverbindung zu einem Computer besteht, auf dem Sie diese Befehle ausführen.
Lösung: Folgen Sie den Richtlinien im Abschnitt Befehle in einer privaten IP-Umgebung ausführen oder folgen Sie der Anleitung im Abschnitt Zeitüberschreitung beim kubectl
-Befehl.