View a markdown version of this page

Referencia de los comandos de la CLI de Apache Airflow - Amazon Managed Workflows para Apache Airflow

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Referencia de los comandos de la CLI de Apache Airflow

En esta página, se describen los comandos de la CLI de Apache Airflow compatibles y no compatibles en Amazon Managed Workflows para Apache Airflow.

sugerencia

La REST de API es más moderna que la CLI y está diseñada para la integración programática con sistemas externos. REST es la forma preferida de interactuar con Apache Airflow.

Requisitos previos

En la siguiente sección se describen los pasos preliminares necesarios para utilizar los comandos y scripts de esta página.

Acceso

AWS CLI

El AWS Command Line Interface (AWS CLI) es una herramienta de código abierto que puede utilizar para interactuar con los AWS servicios mediante comandos de su shell de línea de comandos. Para completar los pasos de esta página, necesita lo siguiente:

¿Qué ha cambiado?

  • v3: arquitectura Airflow. Apache Airflow v3 introduce cambios arquitectónicos de última generación para mejorar la seguridad y la escalabilidad y facilitar el mantenimiento. Para obtener más información, consulte Actualización a Airflow 3.

  • v2: estructura de comandos de la CLI de Airflow. La CLI de Apache Airflow v2 está organizada de manera que los comandos relacionados se agrupan como subcomandos, lo que significa que debe actualizar los scripts de Apache Airflow v1 si desea actualizar a Apache Airflow v2. Por ejemplo, unpause en Apache Airflow v1 es dags unpause en Apache Airflow v2. Para obtener más información, consulte los cambios de la CLI de Airflow 2.0.

Comandos de la CLI admitidos

En la siguiente sección, se enumeran los comandos de la CLI de Apache Airflow disponibles en Amazon MWAA.

Comandos admitidos

Apache Airflow v3
Versiones secundarias Comando

v3.0.6, v3.2.1

detalles de los activos

v3.0.6, v3.2.1

lista de activos

v3.0.6, v3.2.1

materializar activos

v3.0.6, v3.2.1

crear relleno

v3.0.6, v3.2.1

Hoja de referencia

v3.0.6, v3.2.1

añadir conexiones

v3.0.6, v3.2.1

eliminar conexion

v3.0.6, v3.2.1

DAG borrados

v3.0.6, v3.2.1

lista de DAG

v3.0.6, v3.2.1

lista de tareas de DAG

v3.0.6, v3.2.1

lista-importación-errores de DAG

v3.0.6, v3.2.1

lista-ejecuciones DAG

v3.0.6, v3.2.1

próxima ejecución de DAG

v3.0.6, v3.2.1

pausa de DAG

v3.0.6, v3.2.1

informe de DAG

v3.0.6, v3.2.1

reserializar DAG

v3.0.6, v3.2.1

mostrar DAG

v3.0.6, v3.2.1

estado de DAG

v3.0.6, v3.2.1

prueba de DAG

v3.0.6, v3.2.1

activador de DAG

v3.0.6, v3.2.1

cancelar pausa en DAG

v3.0.6, v3.2.1

limpiar db

v3.0.6, v3.2.1

comportamientos de los proveedores

v3.0.6, v3.2.1

lo que obtienen los proveedores

v3.0.6, v3.2.1

enlaces de proveedores

v3.0.6, v3.2.1

vínculos de proveedores

v3.0.6, v3.2.1

lista de proveedores

v3.0.6, v3.2.1

notificaciones de proveedores

v3.0.6, v3.2.1

secretos de los proveedores

v3.0.6, v3.2.1

activador de proveedores

v3.0.6, v3.2.1

widgets de proveedores

v3.0.6, v3.2.1

añadir roles permanentes

v3.0.6, v3.2.1

borrar roles permanentes

v3.0.6, v3.2.1

creación de roles

v3.0.6, v3.2.1

lista de roles

v3.0.6, v3.2.1

borrar tareas

v3.0.6, v3.2.1

tareas deps-fallidas

v3.0.6, v3.2.1

lista de tareas

v3.0.6, v3.2.1

representar tareas

v3.0.6, v3.2.1

estado de las tareas

v3.0.6, v3.2.1

estados-ejecución-DAG de las tareas

v3.0.6, v3.2.1

prueba de tareas

v3.0.6, v3.2.1

eliminar variables

v3.0.6, v3.2.1

obtener variables

v3.0.6, v3.2.1

conjunto de variables

v3.0.6, v3.2.1

lista de variables

v3.0.6, v3.2.1

versión

Apache Airflow v2

Uso de comandos que analizan los DAG

Si su entorno ejecuta Apache Airflow v2.0.2, los comandos de la CLI que analizan los DAG arrojarán error si el DAG usa complementos que dependen de paquetes instalados mediante un requirements.txt:

Apache Airflow v2.0.2
  • dags backfill

  • dags list

  • dags list-runs

  • dags next-execution

Puede utilizar estos comandos de la CLI si sus DAG no utilizan complementos que dependan de paquetes instalados a través de un requirements.txt.

Código de muestra

La siguiente sección contiene ejemplos de diferentes formas de utilizar la CLI de Apache Airflow.

Cómo configurar, obtener o eliminar una variable de Apache Airflow v2

Puede utilizar el siguiente código de muestra para establecer, obtener o eliminar una variable con el formato de <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

Cómo agregar una configuración al activar un DAG

Puede usar el siguiente código de ejemplo con Apache Airflow v2 para añadir una configuración al activar un DAG, por ejemplo 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)

Ejecución de comandos de la CLI en un túnel SSH hacia un host bastión

Use el siguiente ejemplo para ejecutar los comandos de la CLI de Airflow mediante un proxy de túnel SSH en un host bastión de Linux.

Uso de 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