Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
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.
Unterstützte Befehle der Airflow-Befehlszeile
Airflow verwendet die Airflow-Befehlszeilensyntax, die in der Airflow-Dokumentation beschrieben wird.
Eine vollständige Liste der unterstützten Befehle der Airflow-Befehlszeile finden Sie in der Referenz zum Befehl gcloud composer environments run's.
Hinweis
Für die Ausführung von Befehlen der Airflow-Befehlszeile über die Google Cloud CLI gilt Folgendes:
Ihr Google-Konto muss die Berechtigung haben, die Google Cloud CLI mit Managed Airflow zu verwenden und Befehle der Airflow-Befehlszeile auszuführen.
Für Befehle der Airflow-Befehlszeile, die über die Google Cloud CLI ausgeführt werden, wird das
environments.executeAirflowCommandKontingent verwendet.In Managed Airflow-Versionen vor 2.4.0 benötigen Sie Zugriff auf die Steuerungsebene des Clusters Ihrer Umgebung, um Befehle der Airflow-Befehlszeile auszuführen.
Befehle der Airflow-Befehlszeile mit der gcloud CLI ausführen
Verwenden Sie die gcloud CLI, um Befehle der Airflow-Befehlszeile in Ihren Umgebungen auszuführen:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME: der Name Ihrer UmgebungLOCATION: die Region, in der sich die Umgebung befindetSUBCOMMAND: einer der unterstützten Befehle der Airflow-Befehlszeile.SUBCOMMAND_ARGUMENTSdurch Argumente für den Befehl der Airflow-Befehlszeile
Trennzeichen für Unterbefehle
Trennen Sie die Argumente für den angegebenen Befehl der Airflow-Befehlszeile durch --:
- Geben Sie komplexe Befehle der Befehlszeile als Unterbefehl an.
- Geben Sie nach dem Trennzeichen
--Argumente für zusammengesetzte Befehle als Unterbefehlsargumente an.
Beispiel:
gcloud composer environments run example-environment \
dags list -- --output=json
Standardort
Für die meisten gcloud composer-Befehle ist ein Speicherort erforderlich. Sie können den
Speicherort mit dem --location Flag oder durch
Festlegen des standardmäßigen Standorts angeben.
Beispiel: So lösen Sie einen DAG namens sample_quickstart mit der ID 5077 in Ihrer Managed Airflow-Umgebung aus:
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Befehle in einer privaten IP-Umgebung ausführen
In Managed Airflow-Versionen vor 2.4.0 gilt Folgendes:
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 Endpunkt der Steuerungsebene des GKE-Cluster hat. Die Optionen variieren dabei abhängig von Ihrer privaten Clusterkonfiguration.
Wenn der Zugriff auf öffentliche Endpunkte im Cluster Ihrer Umgebung deaktiviert ist, können Sie keine gcloud composer-Befehle verwenden, um die Airflow-Befehlszeile auszuführen.
Führen Sie die folgenden Schritte aus, um Befehle der Airflow-Befehlszeile ausführen zu können:
- Erstellen Sie eine VM in Ihrem VPC-Netzwerk.
Rufen Sie die Clusteranmeldedaten ab. Führen Sie dazu diesen Befehl aus:
gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION \ --project PROJECT \ --internal-ip
Verwenden Sie kubectl, um den Airflow-Befehl auszuführen. Beispiel:
kubectl exec deployment/airflow-scheduler -n COMPOSER_NAMESPACE \
--container airflow-scheduler -- airflow dags list
Ersetzen Sie COMPOSER_NAMESPACE durch einen Namespace wie composer-2-0-28-airflow-2-3-394zxc12411. Sie finden Ihre Managed Airflow-Umgebung in der Liste der Arbeitslasten oder mit dem Befehl kubectl get namespaces.
Wenn der Zugriff auf öffentliche Endpunkte im Cluster Ihrer Umgebung aktiviert ist, können Sie Befehle der Airflow-Befehlszeile auch von einem Computer mit einer externen IP-Adresse ausführen, die zu autorisierten Netzwerken hinzugefügt wurde. Wenn Sie den Zugriff von Ihrem Computer aus aktivieren möchten, fügen Sie die externe Adresse Ihres Computers der Liste der autorisierten Netzwerke Ihrer Umgebung hinzu.
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 weist darauf hin, dass keine Netzwerk verbindung von einem Computer besteht, auf dem Sie diese Befehle ausführen.
Lösung: Folgen Sie der Anleitung im
Abschnitt Befehle in einer privaten IP-Umgebung ausführen
oder verwenden Sie die Anleitung im
kubectl Befehl überschreitet Zeitlimit Abschnitt.
Befehle der Airflow-Befehlszeile über die Cloud Composer API ausführen
Ab Managed Airflow-Version 2.4.0 können Sie Befehle der Airflow-Befehlszeile über die Cloud Composer API ausführen.
Befehl ausführen
Erstellen Sie eine environments.executeAirflowCommand-API-Anfrage:
{
"environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"command": "AIRFLOW_COMMAND",
"subcommand": "AIRFLOW_SUBCOMMAND",
"parameters": [
"SUBCOMMAND_PARAMETER"
]
}
Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID.LOCATION: die Region, in der sich die Umgebung befindetENVIRONMENT_NAME: der Name Ihrer UmgebungAIRFLOW_COMMAND: der Befehl der Airflow-Befehlszeile, den Sie ausführen möchten, z. B.dagsAIRFLOW_SUBCOMMAND: der Unterbefehl für den Befehl der Airflow-Befehlszeile, den Sie ausführen möchten, z. B.list- (optional)
SUBCOMMAND_PARAMETER: Parameter für den Unterbefehl Wenn Sie mehr als einen Parameter verwenden möchten, fügen Sie der Liste weitere Elemente hinzu.
Beispiel:
// 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"
]
}
Befehlsstatus abfragen
Nachdem Sie einen Befehl der Airflow-Befehlszeile über die Cloud Composer API ausgeführt haben, prüfen Sie, ob
der Befehl erfolgreich ausgeführt wurde. Dazu stellen Sie eine
PollAirflowCommand-Anfrage und prüfen die
Felder in exitInfo auf Fehler und Statuscodes. Das Feld output enthält Logzeilen.
Geben Sie die von ExecuteAirflowCommandRequest zurückgegebenen Werte für executionId,
pod und podNamespace an, um den Ausführungsstatus des Befehls abzurufen und Logs abzurufen:
Beispiel:
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:pollAirflowCommand
{
"executionId": "39b82312-3a19-4d21-abac-7f8f19855ce7",
"pod": "airflow-scheduler-1327d8cd68-hblpd",
"podNamespace": "composer-2-4-0-airflow-2-5-3-184dadaf",
"nextLineNumber": 1
}