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

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Apache Airflow tiene una interfaz de línea de comandos (CLI) que puedes usar para realizar tareas como activar y gestionar DAGs, obtener información sobre ejecuciones de DAGs y tareas, y añadir y eliminar conexiones y usuarios.

Comandos de la CLI de Airflow admitidos

Airflow usa la sintaxis de la CLI de Airflow 2, que se describe en la documentación de Airflow.

Para ver una lista completa de los comandos de la CLI de Airflow compatibles, consulta la referencia del comando gcloud composer environments run.

Antes de empezar

  • Debes tener permisos para usar la CLI de Google Cloud con Cloud Composer y ejecutar comandos de la CLI de Airflow.

  • Los comandos de la CLI de Airflow consumen la environments.executeAirflowCommand cuota.

  • No es posible ejecutar comandos de la CLI de Airflow a través de kubectl en Cloud Composer 3. Este enfoque se ha retirado y solo es necesario para las versiones de Cloud Composer anteriores a la 2.4.0.

Ejecutar comandos de la CLI de Airflow

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

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

Sustituye lo siguiente :

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

Separador de argumentos de subcomando

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

  • Especifica comandos de la CLI compuestos como subcomandos.
  • Especifica los argumentos de los comandos compuestos como argumentos de subcomando después de un separador --.

Ejemplo:

gcloud composer environments run example-environment \
    dags list -- --output=json

Ubicación predeterminada

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

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

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

Ejecutar comandos de la CLI de Airflow a través de la API de Cloud Composer

En Cloud Composer 3, puedes ejecutar comandos de la CLI de Airflow a través de la API de Cloud Composer.

Ejecutar un comando

Crea una solicitud de API environments.executeAirflowCommand:

{
  "environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "command": "AIRFLOW_COMMAND",
  "subcommand": "AIRFLOW_SUBCOMMAND",
  "parameters": [
    "SUBCOMMAND_PARAMETER"
  ]
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID de proyecto.
  • LOCATION: la región en la que se encuentra el entorno.
  • ENVIRONMENT_NAME: el nombre de tu entorno.
  • AIRFLOW_COMMAND: comando de la CLI de Airflow que quieras ejecutar, como dags.
  • AIRFLOW_SUBCOMMAND: subcomando del comando de la CLI de Airflow que quieras ejecutar, como list.
  • (Opcional) SUBCOMMAND_PARAMETER: parámetros del subcomando. Si quieres usar más de un parámetro, añade más elementos a la lista.

Ejemplo:

// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:executeAirflowCommand
{
  "environment": "projects/example-project/locations/us-central1/environments/example-environment",
  "command": "dags",
  "subcommand": "list",
  "parameters": [
    "-o json",
    "--verbose"
  ]
}

Estado del comando de sondeo

Después de ejecutar un comando de la CLI de Airflow a través de la API de Cloud Composer, comprueba si el comando se ha completado correctamente haciendo una solicitud PollAirflowCommand e inspeccionando los campos de exitInfo para ver los errores y los códigos de estado. El campo output contiene líneas de registro.

Para obtener el estado de ejecución del comando y los registros, proporcione los valores executionId, pod y podNamespace devueltos por ExecuteAirflowCommandRequest:

Ejemplo:

// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:pollAirflowCommand
{
  "executionId": "a117da94-355d-4ad4-839e-ac39ccb0bf48",
  "pod": "airflow-webserver-66d96b858f-tn96b",
  "podNamespace": "airflow-2-10-2-build-13-226523e4",
  "nextLineNumber": 1
}

Siguientes pasos