Befehlsreferenz für Apache Airflow CLI - Amazon Managed 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.

Befehlsreferenz für Apache Airflow CLI

Auf dieser Seite werden die unterstützten und nicht unterstützten Apache Airflow CLI-Befehle in Amazon Managed Workflows for Apache Airflow beschrieben.

Voraussetzungen

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

Zugriff

AWS CLI

Das 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 in Version 2 geändert

  • Neu: Airflow CLI Befehlsstruktur. Die Apache Airflow v2-CLI ist so organisiert, dass verwandte Befehle als Unterbefehle gruppiert sind. Das bedeutet, dass Sie Apache Airflow v1-Skripte aktualisieren müssen, wenn Sie auf Apache Airflow v2 aktualisieren möchten. In Apache Airflow ist Version 1 beispielsweise jetzt unpause dags unpause in Apache Airflow v2 enthalten. Weitere Informationen finden Sie unter Airflow CLI Changes in 2 im Apache Airflow-Referenzhandbuch.

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 v2
Nebenversionen Befehl

Version 2.0 und höher

Spickzettel

Version 2.0 oder höher

Verbindungen hinzufügen

v2.0+

Verbindungen löschen

v2.2+ (Hinweis)

Tage Verfüllung

Version 2.0 und höher

Tage löschen

v2.2+ (Hinweis)

Liste der Tage

Version 2.0 oder höher

Tagesliste — Jobs

Version 2.6 und höher

Tage list-import-errors

v2.2+ (Hinweis)

Die Tagesliste wird ausgeführt

v2.2+ (Hinweis)

Tage nächste Ausführung

Version 2.0 und höher

2 Tage Pause

Version 2.0 und höher

3 Tage Bericht

Version 2.4 oder höher

Tage reserialisieren

Version 2.0 und höher

Tage zeigen

Version 2.0 oder höher

Zustand der Tage

Version 2.0 und höher

Tage Test

Version 2.0 und höher

Tage auslösen

Version 2.0 und höher

Tage Pause

Version 2.4 oder höher

db sauber

Version 2.0 oder höher

Verhalten der Anbieter

Version 2.0 und höher

Anbieter erhalten

v2.0+

Hooks von Anbietern

Version 2.0 und höher

Links zu Anbietern

Version 2.0 oder höher

Liste der Anbieter

v2.8+

Benachrichtigungen von Anbietern

Version 2.6 oder höher

Geheimnisse der Anbieter

Version 2.7 oder höher

Trigger durch Anbieter

Version 2.0 und höher

Widgets für Anbieter

Version 2.6 oder höher

Rollen: Hinzufügen von Perms

Version 2.6 oder höher

Rollen del-perms

Version 2.6 oder höher

Rollen erstellen

Version 2.0 oder höher

Liste der Rollen

Version 2.0 oder höher

Aufgaben geklärt

v2.0+

Aufgaben fehlgeschlagen-Deps

Version 2.0 und höher

Liste der Aufgaben

v2.0+

Aufgaben rendern

Version 2.0 oder höher

Status der Aufgaben

Version 2.0 oder höher

Aufgaben states-for-dag-run

v2.0+

Aufgaben testen

v2.0+

Variablen löschen

v2.0+

Variablen erhalten

Version 2.0 oder höher

Variablen gesetzt

Version 2.0 oder höher

Liste der Variablen

v2.0+

Version

Verwenden von Befehlen, die DAGs analysieren

Wenn in Ihrer Umgebung Apache Airflow v1.10.12 oder v2.0.2 ausgeführt wird, schlagen CLI-Befehle zum Parsen 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 requirements.txt installiert wurden.

Beispiel-Code

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

Eine Apache Airflow v2-Variable festlegen, 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> festzulegen, 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 v1 und Apache Airflow v2 verwenden, um beim Auslösen einer DAG eine Konfiguration hinzuzufügen, z. 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

Das folgende Beispiel zeigt, wie Airflow CLI-Befehle mithilfe eines SSH-Tunnel-Proxys zu einem Linux-Bastion-Host ausgeführt werden.

Mit 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

Beispiele GitHub und Tutorials AWS