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

Questa pagina descrive i comandi CLI di Apache Airflow supportati e non supportati su Amazon Managed Workflows for 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 consente di 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 nella v2

  • Novità: struttura dei comandi CLI Airflow. La CLI 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 è ora in Apache Airflow v2. unpause dags unpause Per ulteriori informazioni, consulta le modifiche alla CLI di Airflow in 2 nella guida di riferimento di Apache Airflow.

Comandi CLI supportati

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

Comandi supportati

Apache Airflow v2

Utilizzo di comandi che analizzano i DAG

Se nel tuo ambiente è in esecuzione Apache Airflow v1.10.12 o 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 v2.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 la CLI di Apache Airflow.

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 v1 e 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

L'esempio seguente mostra come eseguire i comandi CLI Airflow utilizzando un proxy tunnel SSH su 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

Esempi GitHub e tutorial AWS