Interfaz de línea de comandos de Airflow

Apache Airflow incluye una interfaz de línea de comandos (CLI) que puedes usar para administrar los entornos de Airflow. La CLI es útil para tareas como la administración de flujos de trabajo, el cambio del entorno de Airflow y la obtención de información de registro.

Cloud Composer simplifica los comandos de la CLI de Airflow con el SDK de Google Cloud. Una vez instalado, puedes usar la herramienta de línea de comandos de gcloud para ejecutar el comando gcloud composer environments run y los subcomandos de la CLI de Airflow.

Antes de comenzar

Se requieren los siguientes permisos para acceder a la herramienta de línea de comandos de gcloud (CLI de Airflow) en el entorno de Cloud Composer:

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

Para obtener más información, consulta Control de acceso de Cloud Composer.

Ejecuta comandos de la CLI de Airflow

Puedes ejecutar los comandos de la CLI de Airflow en un entorno de Cloud Composer con el siguiente comando:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION SUBCOMMAND

La mayoría de los comandos gcloud composer requiere una ubicación. Puedes especificar la ubicación mediante la marca --location o el establecimiento de la ubicación predeterminada.

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

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

Por ejemplo, para comprobar si hay errores de sintaxis en los DAG de un directorio test/, ejecuta lo siguiente:

gcloud composer environments run test-environment \
     --location us-central1 \
     list_dags -- -sd /home/airflow/gcs/data/test

Ejecuta comandos en un entorno de IP privada

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

Si el acceso de extremo público está inhabilitado en tu clúster, 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 y las redes autorizadas de la instancia principal están habilitados, también puedes ejecutar comandos de Airflow desde una máquina con una dirección IP pública que se haya agregado a las redes autorizadas de la instancia principal. Para habilitar el acceso desde tu máquina, ajusta la configuración del clúster de GKE:

  1. Busca el nombre del clúster de GKE que ejecuta tu entorno de Composer con este comando:

    gcloud beta composer environments describe ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    
  2. Busca la IP pública de la máquina en la que deseas ejecutar los comandos de la CLI de Airflow en tu entorno. Si usas Cloud Shell, usa dig para buscar la dirección IP externa de tu Cloud Shell:

    dig +short myip.opendns.com @resolver1.opendns.com
    
  3. Agrega la dirección externa de tu máquina a la lista de redes autorizadas de la instancia principal del clúster:

    gcloud container clusters update GKE_CLUSTER \
        --enable-master-authorized-networks \
        --master-authorized-networks EXISTING_AUTH_NETS,SHELL_IP/32
    

    Aquí:

    • EXISTING_AUTH_NETS es la lista existente de redes autorizadas de instancia principal. Para buscar las redes autorizadas de la instancia principal, ejecuta el siguiente comando:

      gcloud container clusters describe GKE_CLUSTER \
          --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • SHELL_IP es la dirección IP externa de tu Cloud Shell.

Ahora deberías poder ejecutar los comandos de la CLI de Airflow en tu entorno de IP privada.

Comandos compatibles de Airflow

Cloud Composer admite los siguientes comandos para entornos que ejecutan Airflow 1.9.0 y versiones posteriores:

  • backfill
  • clear
  • connections
  • dag_state
  • kerberos
  • list_dags
  • list_tasks
  • pause
  • pool
  • render
  • run
  • task_failed_deps
  • task_state
  • test
  • trigger_dag
  • unpause
  • variables
  • version

Airflow 1.10.1 incluye compatibilidad con el siguiente comando:

  • delete_dag

Airflow 1.10.2 incluye compatibilidad con los siguientes comandos:

  • list_dag_runs
  • next_execution