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à.
Questo argomento descrive i comandi CLI di Apache Airflow supportati e non supportati su Amazon Managed Workflows for Apache Airflow.
Indice
Prerequisiti
La sezione seguente descrive i passaggi preliminari necessari per utilizzare i comandi e gli script in questa pagina.
Accesso
-
AWS accesso tramite account AWS Identity and Access Management (IAM) alla policy di autorizzazione di Amazon MWAA in. Politica di accesso all'interfaccia utente di Apache Airflow: Amazon MWAAWeb ServerAccess
-
AWS accesso tramite account AWS Identity and Access Management (IAM) alla policy di autorizzazione di Amazon MWAA. Politica completa di accesso all'API e alla console: Amazon MWAAFull ApiAccess
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 guidadi riferimento di Apache Airflow.
Comandi CLI supportati
La sezione seguente elenca i comandi CLI di Apache Airflow disponibili su Amazon MWAA.
Comandi supportati
Versioni secondarie | Comando |
---|---|
v2.0 e versioni successive |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.6 + |
|
v2.0 + |
|
v2.0 + |
|
v2.4 e versioni successive |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.4 e versioni successive |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.8 + |
|
v2.6+ |
|
v2.7 + |
|
v2.0 + |
|
v2.6 + |
|
v2.6 + |
|
v2.6 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
|
v2.0 + |
Utilizzo di comandi che analizzano DAGs
Se nel tuo ambiente è in esecuzione Apache Airflow v1.10.12 o v2.0.2, i comandi CLI che analizzano DAGs falliranno 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 DAGs non si 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
-
ssh -D 8080 -f -C -q -N
YOUR_USER
@YOUR_BASTION_HOST
-
curl -x socks5h://0:8080 --request POST https://
YOUR_HOST_NAME
/aws_mwaa/cli --headerYOUR_HEADERS
--data-rawYOUR_CLI_COMMAND