View a markdown version of this page

Riferimento ai comandi CLI 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 ai comandi CLI 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 di 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

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

Cosa è cambiato?

  • v3: Architettura Airflow. Apache Airflow v3 introduce modifiche all'architettura rivoluzionarie per fornire maggiore sicurezza e scalabilità e per semplificare la manutenzione. Per ulteriori informazioni, consulta Aggiornamento ad Airflow 3.

  • 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, unpause in Apache Airflow v1 è in Apache Airflow v2dags unpause. Per ulteriori informazioni, consulta le modifiche alla CLI di Airflow nella versione 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

dettagli delle risorse

v3.0.6, v3.2.1

elenco delle risorse

v3.0.6, v3.2.1

gli asset si materializzano

v3.0.6, v3.2.1

backfill crea

v3.0.6, v3.2.1

cheat-sheet

v3.0.6, v3.2.1

connessioni aggiungi

v3.0.6, v3.2.1

connessioni cancellate

v3.0.6, v3.2.1

giorni eliminati

v3.0.6, v3.2.1

elenco dei giorni

v3.0.6, v3.2.1

dags list-jobs

v3.0.6, v3.2.1

dags list-import-errors

v3.0.6, v3.2.1

dags list-run

v3.0.6, v3.2.1

dags successiva esecuzione

v3.0.6, v3.2.1

giorni di pausa

v3.0.6, v3.2.1

rapporto dags

v3.0.6, v3.2.1

i tag riserializzano

v3.0.6, v3.2.1

giorni mostrati

v3.0.6, v3.2.1

stato dei giorni

v3.0.6, v3.2.1

giorni di test

v3.0.6, v3.2.1

i giorni si attivano

v3.0.6, v3.2.1

giorni in pausa

v3.0.6, v3.2.1

db pulito

v3.0.6, v3.2.1

comportamenti dei fornitori

v3.0.6, v3.2.1

i fornitori ottengono

v3.0.6, v3.2.1

ganci per fornitori

v3.0.6, v3.2.1

link ai fornitori

v3.0.6, v3.2.1

elenco dei fornitori

v3.0.6, v3.2.1

notifiche ai fornitori

v3.0.6, v3.2.1

segreti dei fornitori

v3.0.6, v3.2.1

trigger dei provider

v3.0.6, v3.2.1

widget dei fornitori

v3.0.6, v3.2.1

ruoli, componenti aggiuntivi

v3.0.6, v3.2.1

ruoli del-perms

v3.0.6, v3.2.1

i ruoli creano

v3.0.6, v3.2.1

elenco dei ruoli

v3.0.6, v3.2.1

attività chiare

v3.0.6, v3.2.1

attività fallite - deps

v3.0.6, v3.2.1

elenco delle attività

v3.0.6, v3.2.1

renderizzazione delle attività

v3.0.6, v3.2.1

stato delle attività

v3.0.6, v3.2.1

stati delle attività per-dag-run

v3.0.6, v3.2.1

test delle attività

v3.0.6, v3.2.1

le variabili si eliminano

v3.0.6, v3.2.1

le variabili ottengono

v3.0.6, v3.2.1

set di variabili

v3.0.6, v3.2.1

elenco di variabili

v3.0.6, v3.2.1

versione

Apache Airflow v2

Utilizzo di comandi che analizzano i DAG

Se nel tuo 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: requirements.txt

Apache Airflow versione 2.0.2
  • dags backfill

  • dags list

  • dags list-runs

  • dags next-execution

È possibile utilizzare questi comandi CLI se i DAG non utilizzano plug-in che dipendono dai pacchetti installati tramite un. requirements.txt

Codice di esempio

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

Imposta, ottieni o elimina 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

Aggiungere una configurazione quando si attiva 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 verso un host Linux Bastion.

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