View a markdown version of this page

Apache Airflow CLI-Befehlsreferenz - Von Amazon verwaltete Workflows für Apache Airflow

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Apache Airflow CLI-Befehlsreferenz

In diesem Thema werden die unterstützten und nicht unterstützten Apache Airflow CLI-Befehle in Amazon Managed Workflows für Apache Airflow beschrieben.

Tipp

Die REST-API ist moderner als die CLI und wurde für die programmatische Integration mit externen Systemen entwickelt. REST ist die bevorzugte Art der Interaktion mit Apache Airflow.

Voraussetzungen

Im folgenden Abschnitt werden die vorbereitenden Schritte beschrieben, die zur Verwendung der Befehle und Skripts auf dieser Seite erforderlich sind.

Zugriff

AWS CLI

AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer AWS Befehlszeilen-Shell mit Diensten interagieren können. Um die Schritte auf dieser Seite abzuschließen, benötigen Sie Folgendes:

Was hat sich geändert?

  • v3: Airflow-Architektur. Apache Airflow v3 führt bahnbrechende architektonische Änderungen ein, um die Sicherheit und Skalierbarkeit zu verbessern und die Wartung zu vereinfachen. Weitere Informationen finden Sie unter Upgrade auf Airflow 3.

  • v2: Airflow CLI-Befehlsstruktur. Die Apache Airflow v2-CLI ist so organisiert, dass verwandte Befehle als Unterbefehle zusammengefasst sind. Das bedeutet, dass Sie die Apache Airflow v1-Skripte aktualisieren müssen, wenn Sie ein Upgrade auf Apache Airflow v2 durchführen möchten. Zum Beispiel ist dags unpause es unpause in Apache Airflow v1 in Apache Airflow v2. Weitere Informationen finden Sie unter Airflow CLI-Änderungen in 2.0.

Unterstützte CLI-Befehle

Im folgenden Abschnitt sind die Apache Airflow CLI-Befehle aufgeführt, die auf Amazon MWAA verfügbar sind.

Unterstützte Befehle

Apache Airflow v3
Nebenversionen Befehl

v3.0.6, v3.2.1, v3.3.1

Einzelheiten zu den Vermögenswerten

v3.0.6, v3.2.1, v3.3.1

Liste der Vermögenswerte

v3.0.6, v3.2.1, v3.3.1

Vermögenswerte materialisieren sich

v3.0.6, v3.2.1, v3.3.1

auffüllen, erstellen

v3.0.6, v3.2.1, v3.3.1

Spickzettel

v3.0.6, v3.2.1, v3.3.1

Verbindungen hinzufügen

v3.0.6, v3.2.1, v3.3.1

Verbindungen löschen

v3.0.6, v3.2.1, v3.3.1

Tage löschen

v3.0.6, v3.2.1, v3.3.1

Liste der Tage

v3.0.6, v3.2.1, v3.3.1

Tage, Listen, Jobs

v3.0.6, v3.2.1, v3.3.1

Tage listet Importfehler auf

v3.0.6, v3.2.1, v3.3.1

Tage listet runs

v3.0.6, v3.2.1, v3.3.1

Tage nächste Ausführung

v3.0.6, v3.2.1, v3.3.1

5 Tage Pause

v3.0.6, v3.2.1, v3.3.1

7 Tage melden

v3.0.6, v3.2.1, v3.3.1

Tage reserialisieren

v3.0.6, v3.2.1, v3.3.1

Tage anzeigen

v3.0.6, v3.2.1, v3.3.1

7 Tage, Zustand

v3.0.6, v3.2.1, v3.3.1

7 Tage Test

v3.0.6, v3.2.1, v3.3.1

Tage auslösen

v3.0.6, v3.2.1, v3.3.1

5 Tage Pause

v3.0.6, v3.2.1, v3.3.1

db sauber

v3.0.6, v3.2.1, v3.3.1

Verhalten der Anbieter

v3.0.6, v3.2.1, v3.3.1

Anbieter erhalten

v3.0.6, v3.2.1, v3.3.1

Anbieter: Hooks

v3.0.6, v3.2.1, v3.3.1

Links zu Anbietern

v3.0.6, v3.2.1, v3.3.1

Liste der Anbieter

v3.0.6, v3.2.1, v3.3.1

Benachrichtigungen der Anbieter

v3.0.6, v3.2.1, v3.3.1

Geheimnisse der Anbieter

v3.0.6, v3.2.1, v3.3.1

Anbieter lösen aus

v3.0.6, v3.2.1, v3.3.1

Widgets für Anbieter

v3.0.6, v3.2.1, v3.3.1

Rollen, Add-Perms

v3.0.6, v3.2.1, v3.3.1

Rollen del-perms

v3.0.6, v3.2.1, v3.3.1

Rollen erstellen

v3.0.6, v3.2.1, v3.3.1

Liste der Rollen

v3.0.6, v3.2.1, v3.3.1

Aufgaben sind geklärt

v3.0.6, v3.2.1, v3.3.1

fehlgeschlagene Aufgaben

v3.0.6, v3.2.1, v3.3.1

Liste der Aufgaben

v3.0.6, v3.2.1, v3.3.1

Aufgaben rendern

v3.0.6, v3.2.1, v3.3.1

Status der Aufgaben

v3.0.6, v3.2.1, v3.3.1

Aufgaben — Status für den täglichen Lauf

v3.0.6, v3.2.1, v3.3.1

Aufgaben, Test

v3.0.6, v3.2.1, v3.3.1

Variablen löschen

v3.0.6, v3.2.1, v3.3.1

Variablen erhalten

v3.0.6, v3.2.1, v3.3.1

Variablen gesetzt

v3.0.6, v3.2.1, v3.3.1

Liste der Variablen

v3.0.6, v3.2.1, v3.3.1

Version

Apache Airflow v2

Verwenden von Befehlen, die DAGs analysieren

Wenn in Ihrer Umgebung Apache Airflow v2.0.2 ausgeführt wird, schlagen CLI-Befehle zum Analysieren von DAGs fehl, wenn die DAG Plugins verwendet, die von Paketen abhängen, die über Folgendes installiert wurden: requirements.txt

Apache Airflow v2.0.2
  • dags backfill

  • dags list

  • dags list-runs

  • dags next-execution

Sie können diese CLI-Befehle verwenden, wenn Ihre DAGs keine Plugins verwenden, die von Paketen abhängen, die über a installiert wurden. requirements.txt

Beispiel-Code

Der folgende Abschnitt enthält Beispiele für verschiedene Verwendungsmöglichkeiten der Apache Airflow CLI.

Eine Apache Airflow v2-Variable setzen, abrufen oder löschen

Sie können den folgenden Beispielcode verwenden, um eine Variable im Format von <script> <mwaa env name> get | set | delete <variable> <variable value> </variable> </variable> zu setzen, abzurufen oder zu löschen.

[ $# -eq 0 ] && echo "Usage: $0 MWAA environment name " && exit if [[ $2 == "" ]]; then dag="variables list" elif [ $2 == "get" ] || [ $2 == "delete" ] || [ $2 == "set" ]; then dag="variables $2 $3 $4 $5" else echo "Not a valid command" exit 1 fi CLI_JSON=$(aws mwaa --region $AWS_REGION create-cli-token --name $1) \ && CLI_TOKEN=$(echo $CLI_JSON | jq -r '.CliToken') \ && WEB_SERVER_HOSTNAME=$(echo $CLI_JSON | jq -r '.WebServerHostname') \ && CLI_RESULTS=$(curl --request POST "https://$WEB_SERVER_HOSTNAME/aws_mwaa/cli" \ --header "Authorization: Bearer $CLI_TOKEN" \ --header "Content-Type: text/plain" \ --data-raw "$dag" ) \ && echo "Output:" \ && echo $CLI_RESULTS | jq -r '.stdout' | base64 --decode \ && echo "Errors:" \ && echo $CLI_RESULTS | jq -r '.stderr' | base64 --decode

Fügen Sie beim Auslösen einer DAG eine Konfiguration hinzu

Sie können den folgenden Beispielcode mit Apache Airflow v2 verwenden, um beim Auslösen einer DAG eine Konfiguration hinzuzufügen, z. B. airflow trigger_dag 'dag_name' —conf '{"key":"value"}'

import boto3 import json import requests import base64 mwaa_env_name = 'YOUR_ENVIRONMENT_NAME' dag_name = 'YOUR_DAG_NAME' key = "YOUR_KEY" value = "YOUR_VALUE" conf = "{\"" + key + "\":\"" + value + "\"}" client = boto3.client('mwaa') mwaa_cli_token = client.create_cli_token( Name=mwaa_env_name ) mwaa_auth_token = 'Bearer ' + mwaa_cli_token['CliToken'] mwaa_webserver_hostname = 'https://{0}/aws_mwaa/cli'.format(mwaa_cli_token['WebServerHostname']) raw_data = "trigger_dag {0} -c '{1}'".format(dag_name, conf) mwaa_response = requests.post( mwaa_webserver_hostname, headers={ 'Authorization': mwaa_auth_token, 'Content-Type': 'text/plain' }, data=raw_data ) mwaa_std_err_message = base64.b64decode(mwaa_response.json()['stderr']).decode('utf8') mwaa_std_out_message = base64.b64decode(mwaa_response.json()['stdout']).decode('utf8') print(mwaa_response.status_code) print(mwaa_std_err_message) print(mwaa_std_out_message)

Führen Sie CLI-Befehle in einem SSH-Tunnel zu einem Bastion-Host aus

Verwenden Sie das folgende Beispiel, um Airflow-CLI-Befehle mithilfe eines SSH-Tunnelproxys zu einem Linux-Bastion-Host auszuführen.

Verwenden von Curl
  1. ssh -D 8080 -f -C -q -N YOUR_USER@YOUR_BASTION_HOST
  2. curl -x socks5h://0:8080 --request POST https://YOUR_HOST_NAME/aws_mwaa/cli --header YOUR_HEADERS --data-raw YOUR_CLI_COMMAND