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, comodags
.AIRFLOW_SUBCOMMAND
: subcomando del comando de la CLI de Airflow que quieras ejecutar, comolist
.- (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
}