Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 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 2-Befehlszeilensyntax, die in der Airflow-Dokumentation beschrieben wird.
Eine vollständige Liste der unterstützten Airflow-Befehlszeilenbefehle finden Sie in der Referenz zum Befehl gcloud composer environments run
.
Hinweise
Sie benötigen Berechtigungen, um die Google Cloud CLI mit Cloud Composer zu verwenden und Befehle der Airflow-Befehlszeile auszuführen.
Für Airflow-Befehlszeilenbefehle wird das
environments.executeAirflowCommand
-Kontingent verwendet.In Cloud Composer 3 ist es nicht möglich, Airflow-Befehlszeilenbefehle über
kubectl
auszuführen. Dieser Ansatz wurde eingestellt und ist nur für Cloud Composer-Versionen vor 2.4.0 erforderlich.
Befehle der Airflow-Befehlszeile ausführen
Zum Ausführen von Befehlen der Airflow-Befehlszeile in Ihren Umgebungen verwenden Sie die gcloud CLI:
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 befindet.SUBCOMMAND
: einer der unterstützten Airflow-Befehlszeilenbefehle.SUBCOMMAND_ARGUMENTS
durch Argumente für den Airflow-Befehlszeilenbefehl.
Trennzeichen für Unterbefehle
Trennen Sie die Argumente für den angegebenen Airflow-Befehlszeilenbefehl durch --
:
- Geben Sie komplexe Befehlszeilenbefehle 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 Flag --location
oder durch Festlegen des 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 example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Befehle der Airflow-Befehlszeile über die Cloud Composer API ausführen
In Cloud Composer 3 können Sie Befehle der Airflow-Befehlszeile über die Cloud Composer API ausführen.
Befehl ausführen
Erstellen Sie eine API-Anfrage environments.executeAirflowCommand
:
{
"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 befindet.ENVIRONMENT_NAME
: der Name Ihrer UmgebungAIRFLOW_COMMAND
: Der Airflow-CLI-Befehl, den Sie ausführen möchten, z. B.dags
.AIRFLOW_SUBCOMMAND
: Unterbefehl für den Airflow-Befehlszeilenbefehl, 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 abrufen
Nachdem Sie einen Airflow-Befehlszeilenbefehl über die Cloud Composer API ausgeführt haben, prüfen Sie, ob der Befehl erfolgreich abgeschlossen wurde. Senden Sie dazu eine PollAirflowCommand-Anfrage und prüfen Sie die Felder in exitInfo
auf Fehler und Statuscodes. Das Feld output
enthält Logzeilen.
Geben Sie die von ExecuteAirflowCommandRequest
zurückgegebenen Werte executionId
, pod
und podNamespace
an, um den Status der Befehlsausführung abzurufen und Logs abzurufen:
Beispiel:
// 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
}