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 administrar DAG, obtener información sobre las ejecuciones y tareas de DAG, agregar y borrar conexiones y usuarios.
Comandos compatibles con la CLI de Airflow
Airflow usa la sintaxis de la CLI de Airflow 2, que se describe en la documentación de Airflow.
Para obtener una lista completa de los comandos de la CLI de Airflow admitidos, consulta la referencia del comando gcloud composer environments run
.
Antes de comenzar
Debes tener permisos para usar Google Cloud CLI con Cloud Composer y ejecutar comandos de la CLI de Airflow.
No es posible ejecutar comandos de la CLI de Airflow a través de
kubectl
en Cloud Composer 3. Este enfoque dejó de estar disponible y solo es obligatorio para las versiones de Cloud Composer anteriores a la 2.4.0.
Ejecuta comandos de la CLI de Airflow
Para ejecutar comandos de la CLI de Airflow en tus entornos, usa gcloud CLI:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Reemplaza lo siguiente :
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.SUBCOMMAND
: 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 --
:
- 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
--
.
Ejemplo:
gcloud composer environments run example-environment \
dags list -- --output=json
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.
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 example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Ejecuta 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 a la API de environments.executeAirflowCommand
:
{
"environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"command": "AIRFLOW_COMMAND",
"subcommand": "AIRFLOW_SUBCOMMAND",
"parameters": [
"SUBCOMMAND_PARAMETER"
]
}
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto.LOCATION
: Es la región en la que se encuentra el entorno.ENVIRONMENT_NAME
: Es el nombre de tu entorno.AIRFLOW_COMMAND
: El comando de la CLI de Airflow que deseas ejecutar, comodags
.AIRFLOW_SUBCOMMAND
: Es el subcomando del comando de la CLI de Airflow que deseas ejecutar, comolist
.SUBCOMMAND_PARAMETER
(opcional): Parámetros para el subcomando. Si quieres usar más de un parámetro, agrega 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, verifica si el comando se completó correctamente realizando una solicitud PollAirflowCommand y revisando los campos en exitInfo
en busca de errores y códigos de estado. El campo output
contiene líneas de registro.
Para obtener el estado de ejecución del comando y recuperar registros, proporciona los valores executionId
, pod
y podNamespace
que muestra 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
}