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-Befehlszeilensyntax, die in der Airflow-Dokumentation beschrieben wird.
Cloud Composer 3 unterstützt die folgenden Airflow-Befehlszeilenbefehle:
(Airflow 2 und 3) Mit dem Befehl
gcloud composer environments runwerden Airflow-Befehlszeilenbefehle für Ihre Umgebung ausgeführt. Einige Befehle sind blockiert und können nicht ausgeführt werden. Eine Liste der unterstützten Airflow-Befehlszeilenbefehle finden Sie in der Referenz zum Befehl.(Airflow 3) Das
airflowctl-Befehlszeilentool unterstützt eine Teilmenge der Airflow-CLI-Befehle und führt sie über die Airflow REST API aus. Alle inairflowctlverfügbaren Befehle werden in Cloud Composer unterstützt. Prüfen Sie, ob das Airflow-Konto des Nutzers eine Airflow-Rolle hat, mit der ein bestimmter Befehl ausgeführt werden kann.
Hinweise
So führen Sie Airflow-CLI-Befehle über die Google Cloud CLI aus:
Ihr Google-Konto muss Berechtigungen haben, um die Google Cloud CLI mit Cloud Composer zu verwenden und Airflow-CLI-Befehle auszuführen.
Airflow-Befehlszeilenbefehle, die über die Google Cloud CLI ausgeführt werden, verbrauchen das
environments.executeAirflowCommand-Kontingent.
So führen Sie Airflow-Befehlszeilenbefehle über das airflowctl-Befehlszeilentool (in Airflow 3) aus:
Ihr Google-Konto muss die Berechtigung
composer.environments.gethaben. Sie wird von der Rolle bereitgestellt, die Cloud Composer-Umgebungen aufrufen kann. Für dasairflowctl-Befehlszeilentool sind keine Berechtigungen zum Ausführen von Airflow-Befehlszeilenbefehlen erforderlich.Airflow-Befehlszeilenbefehle, die über
airflowctlausgeführt werden, verbrauchen nicht dasenvironments.executeAirflowCommand-Kontingent.
Befehle der Airflow-Befehlszeile mit der gcloud CLI 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_ARGUMENTSdurch 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 mit airflowctl ausführen
Das airflowctl-Befehlszeilentool ist ein von Airflow bereitgestelltes Befehlszeilenprogramm zum Ausführen von Airflow-Befehlszeilenbefehlen. Es unterstützt eine Teilmenge von Airflow-Befehlszeilenbefehlen und führt sie über die Airflow REST API aus. Alle in airflowctl verfügbaren Befehle werden in Cloud Composer unterstützt.
Autorisierung und Authentifizierung mit airflowctl in Cloud Composer funktionieren so:
Da
airflowctldie Airflow REST API verwendet, muss das Airflow-Nutzerkonto, das mit Ihrem Google-Konto oder Dienstkonto verknüpft ist, eine Airflow-Rolle mit ausreichenden Berechtigungen zum Ausführen eines Befehls haben. Einige Befehle können beispielsweise nur von Airflow-Nutzern mit der RolleAdminausgeführt werden.Das von
airflowctlverwendete API-Token wird mit dem Befehlgcloud authbereitgestellt. Standardmäßig hat das Token eine Gültigkeitsdauer von 1 Stunde. Sie können sie mit dem Argument--lifetimeändern, das für diesen Befehl angegeben wird.
Führen Sie den folgenden Befehl aus, um sich mit airflowctl zu authentifizieren:
airflowctl auth login \
--api-url WEB_SERVER_URL \
--api-token $(gcloud auth print-access-token)
Ersetzen Sie Folgendes:
WEB_SERVER_URL: die URL des Airflow-Webservers. Achten Sie darauf, dass diese URL keinen abschließenden Schrägstrich („/“) enthält.
Beispiel:
airflowctl auth login \
--api-url https://example-dot-us-central1.composer.googleusercontent.com \
--api-token $(gcloud auth print-access-token)
Nach der Authentifizierung mit airflowctl können Sie Airflow-Befehlszeilenbefehle ausführen:
airflowctl dags list
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-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 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-CLI-Befehl ü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
}