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 ist.
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 Airflow-Befehlszeilenbefehle auszuführen.
In Cloud Composer 3 ist es nicht möglich, Airflow-Befehle ü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 Unterbefehle 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
Airflow-Befehle über die Cloud Composer API ausführen
In Cloud Composer 3 können Sie Airflow-Befehle ü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 befindet.ENVIRONMENT_NAME
: der Name Ihrer UmgebungAIRFLOW_COMMAND
: Airflow-Befehlszeilenbefehl, 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 untergeordneten Befehl. Wenn Sie mehrere 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"
]
}
Status des Abfragebefehls
Nachdem Sie einen Airflow-Befehl über die Cloud Composer API ausgeführt haben, prüfen Sie, ob der Befehl erfolgreich abgeschlossen wurde. Stellen Sie dazu eine PollAirflowCommand-Anfrage und prüfen Sie die Felder in exitInfo
auf Fehler und Statuscodes. Das Feld output
enthält Logzeilen.
Wenn Sie den Status der Befehlsausführung abrufen und Protokolle abrufen möchten, geben Sie die von ExecuteAirflowCommandRequest
zurückgegebenen Werte executionId
, pod
und podNamespace
an:
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
}