Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)
Apache Airflow ha un'interfaccia a riga di comando (CLI) che puoi utilizzare per eseguire attività come l'attivazione e la gestione dei DAG, ottenere informazioni sulle esecuzioni e sulle attività dei DAG, aggiungere ed eliminare connessioni e utenti.
Comandi Airflow CLI supportati
Airflow utilizza la sintassi Airflow CLI, descritta nella documentazione di Airflow.
Managed Airflow (terza generazione) supporta i seguenti comandi Airflow CLI:
(Airflow 2 e 3) Il comando
gcloud composer environments runesegue i comandi Airflow CLI per il tuo ambiente. Alcuni comandi sono bloccati e non è possibile eseguirli. Consulta il riferimento del comando per l'elenco dei comandi Airflow CLI supportati.(Airflow 3) Lo
airflowctlstrumento a riga di comando supporta un sottoinsieme di comandi Airflow CLI e li esegue utilizzando l'API REST di Airflow. Tutti i comandi disponibili inairflowctlsono supportati in Managed Airflow. Assicurati che l'account Airflow dell'utente abbia un ruolo Airflow in grado di eseguire un comando specifico.
Prima di iniziare
Per eseguire i comandi Airflow CLI tramite Google Cloud CLI:
Il tuo Account Google deve disporre delle autorizzazioni per utilizzare Google Cloud CLI con Managed Airflow ed eseguire i comandi Airflow CLI.
I comandi Airflow CLI eseguiti tramite Google Cloud CLI utilizzano la
environments.executeAirflowCommandquota.
Per eseguire i comandi Airflow CLI tramite lo
airflowctl strumento a riga di comando (in Airflow 3):
Il tuo Account Google deve disporre dell'autorizzazione
composer.environments.get. Viene fornita dal ruolo che può visualizzare gli ambienti Managed Airflow. Lo strumento a riga di comandoairflowctlnon richiede autorizzazioni per l'esecuzione dei comandi Airflow CLI.I comandi Airflow CLI eseguiti tramite
airflowctlnon utilizzano laenvironments.executeAirflowCommandquota.
Esegui i comandi Airflow CLI con gcloud CLI
Per eseguire i comandi Airflow CLI nei tuoi ambienti, utilizza gcloud CLI:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome del tuo ambiente.LOCATION: la regione in cui si trova l'ambiente.SUBCOMMAND: uno dei comandi Airflow CLI supportati.SUBCOMMAND_ARGUMENTScon gli argomenti per il comando Airflow CLI.
Separatore degli argomenti del sottocomando
Separa gli argomenti per il comando Airflow CLI specificato con --:
- Specifica i comandi CLI composti come sottocomando.
- Specifica gli argomenti per i comandi composti come argomenti del sottocomando, dopo un separatore
--.
Esempio:
gcloud composer environments run example-environment \
dags list -- --output=json
Località predefinita
La maggior parte dei comandi gcloud composer richiede una località. Puoi specificare la
località con il --location flag o
impostando la località predefinita.
Ad esempio, per attivare un DAG denominato sample_quickstart con l'ID 5077 nel tuo ambiente Managed Airflow:
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Esegui i comandi Airflow CLI con airflowctl
Lo strumento a riga di comando airflowctl è un'utilità a riga di comando
fornita da Airflow per l'esecuzione dei comandi Airflow CLI. Supporta un sottoinsieme di comandi Airflow CLI e li esegue utilizzando l'API REST di Airflow. Tutti i comandi disponibili in airflowctl sono supportati in Managed Airflow.
L'autorizzazione e l'autenticazione con airflowctl in Managed Airflow funzionano nel seguente modo:
Poiché
airflowctlutilizza l'API REST di Airflow, assicurati che l'account utente Airflow associato al tuo Account Google o account di servizio abbia un ruolo Airflow con autorizzazioni sufficienti per eseguire un comando. Ad esempio, alcuni comandi possono essere eseguiti solo dagli utenti Airflow con il ruoloAdmin.Il token API utilizzato da
airflowctlviene fornito con ilgcloud auth application-default print-access-tokencomando. Per impostazione predefinita, il token ha un periodo di scadenza di 1 ora. Puoi modificarlo con l'argomento--lifetimefornito a questo comando.
Per eseguire l'autenticazione con airflowctl, esegui il comando seguente:
airflowctl auth login \
--api-url WEB_SERVER_URL \
--api-token $(gcloud auth application-default print-access-token)
Sostituisci quanto segue:
WEB_SERVER_URL: l' URL del server web di Airflow. Assicurati che questo URL non abbia una barra finale ("/").
Esempio:
airflowctl auth login \
--api-url https://example-dot-us-central1.composer.googleusercontent.com \
--api-token $(gcloud auth application-default print-access-token)
Dopo aver eseguito l'autenticazione con airflowctl, puoi eseguire i comandi Airflow CLI:
airflowctl dags list
Esegui i comandi Airflow CLI tramite l'API Composer
In Managed Airflow (terza generazione), puoi eseguire i comandi Airflow CLI tramite l'API Composer.
Esegui un comando
Crea una richiesta API environments.executeAirflowCommand:
{
"environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"command": "AIRFLOW_COMMAND",
"subcommand": "AIRFLOW_SUBCOMMAND",
"parameters": [
"SUBCOMMAND_PARAMETER"
]
}
Sostituisci quanto segue:
PROJECT_ID: l'ID progetto .LOCATION: la regione in cui si trova l'ambiente.ENVIRONMENT_NAME: il nome del tuo ambiente.AIRFLOW_COMMAND: il comando Airflow CLI che vuoi eseguire, ad esempiodags.AIRFLOW_SUBCOMMAND: il sottocomando per il comando Airflow CLI che vuoi eseguire, ad esempiolist.- (facoltativo)
SUBCOMMAND_PARAMETER: i parametri per il sottocomando. Se vuoi utilizzare più di un parametro, aggiungi altri elementi all'elenco.
Esempio:
// 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"
]
}
Esegui il polling dello stato del comando
Dopo aver eseguito un comando Airflow CLI tramite l'API Cloud Composer, controlla se il comando è stato completato correttamente effettuando una PollAirflowCommand e ispezionando i campi in exitInfo per verificare la presenza di errori e codici di stato. Il campo output contiene le righe di log.
Per ottenere lo stato di esecuzione del comando e recuperare i log, fornisci i valori executionId,
pod e podNamespace restituiti da ExecuteAirflowCommandRequest:
Esempio:
// 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
}