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.
Managed Airflow (Gen 3) unterstützt die folgenden Befehle der Airflow-Befehlszeile:
(Airflow 2 und 3) Mit dem Befehl
gcloud composer environments runwerden Befehle der Airflow-Befehlszeile für Ihre Umgebung ausgeführt. Einige Befehle sind blockiert und können nicht ausgeführt werden. Eine Liste der unterstützten Befehle der Airflow-Befehlszeile finden Sie in der Referenz zum Befehl.(Airflow 3) Das
airflowctlBefehlszeilentool unterstützt eine Teilmenge der Befehle der Airflow-Befehlszeile und führt sie mit der Airflow REST API aus. Alle inairflowctlverfügbaren Befehle werden in Managed Airflow unterstützt. Achten Sie darauf, dass das Airflow-Konto des Nutzers eine Airflow-Rolle hat, mit der ein bestimmter Befehl ausgeführt werden kann.
Hinweis
So führen Sie Befehle der Airflow-Befehlszeile über die Google Cloud CLI aus:
Ihr Google-Konto muss Berechtigungen haben, um 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
oder mit demenvironments.executeAirflowCommandKontingent verwendet.airflowctlBefehlszeilentool in Airflow 3 zu tun. Wenn Sie DAGs über die Google Cloud CLI auslösen, kann das Kontingentlimit für Ihre Umgebung erreicht werden. In diesem Fall werden keine Befehle der Airflow-Befehlszeile mehr ausgeführt.
So führen Sie Befehle der Airflow-Befehlszeile über das
airflowctl Befehlszeilentool aus (in Airflow 3):
Ihr Google-Konto muss die Berechtigung
composer.environments.gethaben. Diese Berechtigung wird von der Rolle bereitgestellt, mit der Managed Airflow-Umgebungen aufgerufen werden können. Für dasairflowctlBefehlszeilentool sind keine Berechtigungen zum Ausführen von Befehlen der Airflow-Befehlszeile erforderlich.Für Befehle der Airflow-Befehlszeile, die über
airflowctlausgeführt werden, wird dasenvironments.executeAirflowCommandKontingent nicht verwendet.
Befehle der Airflow-Befehlszeile mit der gcloud CLI ausführen
So führen Sie Befehle der Airflow-Befehlszeile in Ihren Umgebungen mit der gcloud CLI aus:
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 Unterbefehlsargumente
Trennen Sie die Argumente für den angegebenen Befehl der Airflow-Befehlszeile durch --:
- Geben Sie zusammengesetzte CLI-Befehle als Unterbefehl an.
- Geben Sie alle Argumente für zusammengesetzte Befehle als Unterbefehlsargumente nach einem
---Trennzeichen 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.
So lösen Sie beispielsweise 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 der Airflow-Befehlszeile mit airflowctl ausführen
Das airflowctl Befehlszeilentool ist ein Befehlszeilen
programm, das von Airflow zum Ausführen von Befehlen der Airflow-Befehlszeile bereitgestellt wird. Es unterstützt eine Teilmenge der Befehle der Airflow-Befehlszeile und führt sie mit der Airflow REST API aus. Alle in airflowctl verfügbaren Befehle werden in Managed Airflow unterstützt.
Die Autorisierung und Authentifizierung mit airflowctl in Managed Airflow funktioniert 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 demgcloud auth application-default print-access-tokenBefehl bereitgestellt. 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 application-default print-access-token)
Ersetzen Sie Folgendes:
WEB_SERVER_URL: die URL des Airflow-Webservers. Achten Sie darauf, dass diese URL keinen nachgestellten Schrägstrich („/“) hat.
Beispiel:
airflowctl auth login \
--api-url https://example-dot-us-central1.composer.googleusercontent.com \
--api-token $(gcloud auth application-default print-access-token)
Nachdem Sie sich mit airflowctl authentifiziert haben, können Sie Befehle der Airflow-Befehlszeile ausführen:
airflowctl dags list
Befehle der Airflow-Befehlszeile über die Cloud Composer API ausführen
In Managed Airflow (Gen 3) 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. 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 Werte für executionId, pod und podNamespace an, die von ExecuteAirflowCommandRequest zurückgegeben werden, um den Ausführungsstatus des Befehls 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
}