View a markdown version of this page

Riferimento al comando CLI di Apache Airflow - Amazon Managed Workflows for Apache Airflow

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Riferimento al comando CLI di Apache Airflow

Questo argomento descrive i comandi CLI di Apache Airflow supportati e non supportati su Amazon Managed Workflows for Apache Airflow.

Suggerimento

L'API REST è più moderna della CLI ed è progettata per l'integrazione programmatica con sistemi esterni. REST è il modo preferito per interagire con Apache Airflow.

Prerequisiti

La sezione seguente descrive i passaggi preliminari necessari per utilizzare i comandi e gli script in questa pagina.

Accesso

AWS CLI

AWS Command Line Interface (AWS CLI) è uno strumento open source che puoi utilizzare per interagire con i AWS servizi utilizzando i comandi nella shell della riga di comando. Per completare i passaggi indicati in questa pagina, è necessario quanto segue:

Cosa è cambiato?

  • v3: architettura Airflow. Apache Airflow v3 introduce importanti modifiche all'architettura per fornire maggiore sicurezza e scalabilità e per semplificare la manutenzione. Per saperne di più, consulta Upgrade to Airflow 3. https://airflow.apache.org/docs/apache-airflow/stable/installation/upgrading_to_airflow3.html

  • v2: struttura dei comandi CLI Airflow. L'interfaccia della riga di comando di Apache Airflow v2 è organizzata in modo che i comandi correlati siano raggruppati come sottocomandi, il che significa che è necessario aggiornare gli script di Apache Airflow v1 se si desidera eseguire l'aggiornamento ad Apache Airflow v2. Ad esempio, in Apache Airflow v1 si trova in Apache Airflow v2. unpause dags unpause Per saperne di più, consulta le modifiche alla CLI di Airflow in 2.0.

Comandi CLI supportati

La sezione seguente elenca i comandi CLI di Apache Airflow disponibili su Amazon MWAA.

Comandi supportati

Apache Airflow v3
Versioni secondarie Comando

v3.0.6, v3.2.1, v3.3.1

dettagli delle risorse

v3.0.6, v3.2.1, v3.3.1

elenco delle risorse

v3.0.6, v3.2.1, v3.3.1

le risorse si materializzano

v3.0.6, v3.2.1, v3.3.1

creazione di backfill

v3.0.6, v3.2.1, v3.3.1

cheat sheet

v3.0.6, v3.2.1, v3.3.1

le connessioni aggiungono

v3.0.6, v3.2.1, v3.3.1

eliminare le connessioni

v3.0.6, v3.2.1, v3.3.1

dati eliminati

v3.0.6, v3.2.1, v3.3.1

elenco dei giorni

v3.0.6, v3.2.1, v3.3.1

lista di giorni-jobs

v3.0.6, v3.2.1, v3.3.1

lista di giorni -import-errors

v3.0.6, v3.2.1, v3.3.1

lista di giorni in esecuzione

v3.0.6, v3.2.1, v3.3.1

giorni di prossima esecuzione

v3.0.6, v3.2.1, v3.3.1

7 giorni di pausa

v3.0.6, v3.2.1, v3.3.1

rapporto sui giorni

v3.0.6, v3.2.1, v3.3.1

deserializzare i tag

v3.0.6, v3.2.1, v3.3.1

giorni mostrati

v3.0.6, v3.2.1, v3.3.1

stato dei giorni

v3.0.6, v3.2.1, v3.3.1

test dei giorni

v3.0.6, v3.2.1, v3.3.1

trigger a giorni

v3.0.6, v3.2.1, v3.3.1

giorni di pausa

v3.0.6, v3.2.1, v3.3.1

db pulito

v3.0.6, v3.2.1, v3.3.1

comportamenti dei fornitori

v3.0.6, v3.2.1, v3.3.1

i fornitori ottengono

v3.0.6, v3.2.1, v3.3.1

fornitori, ganci

v3.0.6, v3.2.1, v3.3.1

link ai fornitori

v3.0.6, v3.2.1, v3.3.1

elenco dei fornitori

v3.0.6, v3.2.1, v3.3.1

notifiche dei fornitori

v3.0.6, v3.2.1, v3.3.1

segreti dei fornitori

v3.0.6, v3.2.1, v3.3.1

trigger del provider

v3.0.6, v3.2.1, v3.3.1

widget dei fornitori

v3.0.6, v3.2.1, v3.3.1

ruoli, add-perms

v3.0.6, v3.2.1, v3.3.1

ruoli del-perms

v3.0.6, v3.2.1, v3.3.1

creazione di ruoli

v3.0.6, v3.2.1, v3.3.1

elenco dei ruoli

v3.0.6, v3.2.1, v3.3.1

compiti chiari

v3.0.6, v3.2.1, v3.3.1

attività failed-deps

v3.0.6, v3.2.1, v3.3.1

elenco delle attività

versione 3.0.6, versione 3.2.1, versione 3.3.1

renderizzazione delle attività

v3.0.6, v3.2.1, v3.3.1

stato delle attività

v3.0.6, v3.2.1, v3.3.1

attività states-for-dag-run

v3.0.6, v3.2.1, v3.3.1

test delle attività

v3.0.6, v3.2.1, v3.3.1

le variabili cancellano

v3.0.6, v3.2.1, v3.3.1

le variabili ottengono

v3.0.6, v3.2.1, v3.3.1

set di variabili

v3.0.6, v3.2.1, v3.3.1

elenco delle variabili

v3.0.6, v3.2.1, v3.3.1

versione

Apache Airflow v2

Utilizzo di comandi che analizzano i DAG

Se nell'ambiente è in esecuzione Apache Airflow v2.0.2, i comandi CLI che analizzano i DAG avranno esito negativo se il DAG utilizza plugin che dipendono dai pacchetti installati tramite un: requirements.txt

Apache Airflow v2.0.2
  • dags backfill

  • dags list

  • dags list-runs

  • dags next-execution

Puoi usare questi comandi CLI se i tuoi DAG non utilizzano plugin che dipendono da pacchetti installati tramite un. requirements.txt

Codice di esempio

La sezione seguente contiene esempi di diversi modi di utilizzare la CLI di Apache Airflow.

Impostare, recuperare o eliminare una variabile Apache Airflow v2

È possibile utilizzare il seguente codice di esempio per impostare, ottenere o eliminare una variabile nel formato di. <script> <mwaa env name> get | set | delete <variable> <variable value> </variable> </variable>

[ $# -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

Aggiungete una configurazione quando attivate un DAG

È possibile utilizzare il seguente codice di esempio con Apache Airflow v2 per aggiungere una configurazione quando si attiva un DAG, ad esempio. 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)

Esegui i comandi CLI su un tunnel SSH verso un host bastion

Usa l'esempio seguente per eseguire i comandi CLI Airflow utilizzando un proxy tunnel SSH su un Linux Bastion Host.

Usare 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