Airflow Summit 2023
Únete a la comunidad de Airflow entre el 19 y el 21 de septiembre durante la conferencia Airflow Summit 2023 para obtener más información sobre Airflow y compartir tu experiencia. La convocatoria de trabajos ya está abierta

Acceder a la interfaz de línea de comandos de Airflow

Cloud Composer 1 | Cloud Composer 2

Apache Airflow tiene una interfaz de línea de comandos (CLI) que puedes usar para realizar tareas como activar y administrar DAG, obtener información sobre las ejecuciones y tareas de DAG, agregar y borrar conexiones y usuarios.

Acerca de las versiones de la sintaxis de la CLI

Airflow en Cloud Composer 1 proporciona dos sintaxis diferentes para los comandos de la CLI:

Comandos compatibles con la CLI de Airflow

Para obtener una lista completa de los comandos de la CLI de Airflow admitidos, consulta la referencia de gcloud composer environments run.

Antes de comenzar

Debes tener permisos suficientes para usar la herramienta de línea de comandos de gcloud con Cloud Composer. Para obtener más información, consulta Control de acceso.

Ejecuta comandos de la CLI de Airflow

Para ejecutar comandos de la CLI de Airflow en tus entornos, usa gcloud:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    SUBCOMMAND \
    -- SUBCOMMAND_ARGUMENTS

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • SUBCOMMAND por uno de los comandos de la CLI de Airflow admitidos
  • SUBCOMMAND_ARGUMENTS por argumentos para el comando de la CLI de Airflow

Separador de argumentos del subcomando

Separa los argumentos para el comando de la CLI de Airflow especificado con --:

Airflow 2

Para la sintaxis de la CLI de Airflow 2, sigue estos pasos:

  • Especifica los comandos compuestos de la CLI como subcomando.
  • Especifica los argumentos para los comandos compuestos como argumentos de subcomandos, después de un separador --.
gcloud composer environments run example-environment \
    dags list -- --output=json

Airflow 1

Para la sintaxis de la CLI de Airflow 1.10, haz lo siguiente:

  • Especifica los comandos de la CLI como subcomando.
  • Especifica los argumentos después de un separador --.
gcloud composer environments run example-environment \
    list_dags -- --report

Ubicación predeterminada

La mayoría de los comandos gcloud composer requiere una ubicación. Puedes especificar la ubicación con la marca --location o si configuras la ubicación predeterminada.

Ejemplo

Por ejemplo, para activar un DAG con el nombre sample_quickstart y el ID 5077 en tu entorno de Cloud Composer, ejecuta lo siguiente:

Airflow 2

gcloud composer environments run example-environment \
    --location us-central1 dags trigger -- sample_quickstart \
    --run-id=5077

Airflow 1

gcloud composer environments run example-environment \
    --location us-central1 trigger_dag -- sample_quickstart \
    --run_id=5077

Ejecuta comandos en un entorno de IP privada

Para ejecutar comandos de la CLI de Airflow en un entorno de IP privada, ejecutalos en una máquina que pueda acceder al extremo del plano de control del clúster de GKE. Las opciones pueden variar según la configuración del clúster privado.

Si el acceso al extremo público está inhabilitado en el clúster de tu entorno, debes ejecutar comandos de Airflow desde una VM en la misma red de VPC. Crea una VM en tu red de VPC para habilitar esta ruta.

Si el acceso al extremo público está habilitado en el clúster de tu entorno, también puedes ejecutar comandos de Airflow desde una máquina con una dirección IP pública que se agregue a las redes autorizadas. Para habilitar el acceso desde tu máquina, agrega su dirección externa a la lista de redes autorizadas del entorno.

Soluciona problemas

No hay conectividad con el plano de control del clúster

Cuando ejecutes comandos gcloud composer environments run o kubectl, es posible que encuentres el siguiente error:

Get "https://<IP Address>/api?timeout=32s": dial tcp <IP Address>:443: i/o timeout"

Síntoma: Este mensaje de error indica que no hay conectividad de red desde una computadora en la que ejecutas estos comandos.

Solución: Sigue los lineamientos que se presentan en la sección Ejecuta comandos en un entorno de IP privada o usa las instrucciones disponibles en la sección Tiempo de espera de comandos de kubectl.