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 dell'interfaccia a riga di comando di Airflow supportati
Airflow utilizza la sintassi dell'interfaccia a riga di comando di Airflow, descritta nella documentazione di Airflow.
Per l'elenco completo dei comandi dell'interfaccia a riga di comando di Airflow supportati, consulta il riferimento del comando gcloud composer environments run.
Prima di iniziare
Per eseguire i comandi dell'interfaccia a riga di comando di Airflow tramite Google Cloud CLI:
Il tuo Account Google deve disporre delle autorizzazioni per utilizzare Google Cloud CLI con Managed Airflow ed eseguire i comandi dell'interfaccia a riga di comando di Airflow.
I comandi dell'interfaccia a riga di comando di Airflow eseguiti tramite Google Cloud CLI consumano la
environments.executeAirflowCommandquota.Nelle versioni di Managed Airflow precedenti alla 2.4.0, devi avere accesso al control plane del cluster dell'ambiente per eseguire i comandi dell'interfaccia a riga di comando di Airflow.
Eseguire i comandi dell'interfaccia a riga di comando di Airflow con gcloud CLI
Per eseguire i comandi dell'interfaccia a riga di comando di Airflow negli ambienti, utilizza gcloud CLI:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente.LOCATION: la regione in cui si trova l'ambiente.SUBCOMMAND: uno dei comandi dell'interfaccia a riga di comando di Airflow supportati.SUBCOMMAND_ARGUMENTScon gli argomenti per il comando dell'interfaccia a riga di comando di Airflow.
Separatore degli argomenti dei sottocomandi
Separa gli argomenti per il comando dell'interfaccia a riga di comando di Airflow specificato con --:
- Specifica i comandi CLI composti come sottocomando.
- Specifica tutti gli argomenti per i comandi composti come argomenti dei sottocomandi, 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 Airflow gestito:
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Eseguire i comandi in un ambiente IP privato
Nelle versioni di Managed Airflow precedenti alla 2.4.0:
Per eseguire i comandi dell'interfaccia a riga di comando di Airflow in un ambiente IP privato, eseguili su una macchina che può accedere all'endpoint del piano di controllo del cluster GKE. Le opzioni possono variare a seconda della configurazione del cluster privato.
Se l'accesso all'endpoint pubblico è disabilitato nel cluster dell'ambiente, non è possibile utilizzare i comandi gcloud composer per eseguire l'interfaccia a riga di comando di Airflow.
Per poter eseguire i comandi dell'interfaccia a riga di comando di Airflow, segui questi passaggi:
- Crea una VM nella rete VPC
Acquisisci le credenziali del cluster. Esegui questo comando:
gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION \ --project PROJECT \ --internal-ip
Utilizza kubectl per eseguire il comando Airflow. Ad esempio:
kubectl exec deployment/airflow-scheduler -n COMPOSER_NAMESPACE \
--container airflow-scheduler -- airflow dags list
Sostituisci COMPOSER_NAMESPACE con uno spazio dei nomi simile a: composer-2-0-28-airflow-2-3-394zxc12411. Puoi trovare Managed Airflow nell'elenco dei carichi di lavoro o utilizzando il comando kubectl get namespaces.
Se l'accesso all'endpoint pubblico è abilitato nel cluster dell'ambiente, puoi anche eseguire i comandi dell'interfaccia a riga di comando di Airflow da una macchina con un indirizzo IP esterno aggiunto alle reti autorizzate. Per abilitare l'accesso dalla tua macchina, aggiungi l' indirizzo esterno della macchina all'elenco delle reti autorizzate dell'ambiente .
Quando esegui i comandi gcloud composer environments run o kubectl, potresti riscontrare il seguente errore:
Get "https://<IP Address>/api?timeout=32s": dial tcp <IP Address>:443: i/o timeout"
Sintomo: questo messaggio di errore indica che non esiste connettività di rete da un computer su cui esegui questi comandi.
Soluzione: segui le linee guida presentate nella
sezione Eseguire i comandi in un ambiente IP privato
o utilizza le istruzioni disponibili nella sezione
Il comando kubectl va in timeout.
Eseguire i comandi dell'interfaccia a riga di comando di Airflow tramite l'API Cloud Composer
A partire dalla versione 2.4.0 di Airflow gestito, puoi eseguire i comandi dell'interfaccia a riga di comando di Airflow tramite l'API Cloud 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 dell'ambiente.AIRFLOW_COMMAND: il comando dell'interfaccia a riga di comando di Airflow che vuoi eseguire, ad esempiodags.AIRFLOW_SUBCOMMAND: il sottocomando per il comando dell'interfaccia a riga di comando di Airflow 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"
]
}
Eseguire il polling dello stato del comando
Dopo aver eseguito un comando dell'interfaccia a riga di comando di Airflow tramite l'API 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": "39b82312-3a19-4d21-abac-7f8f19855ce7",
"pod": "airflow-scheduler-1327d8cd68-hblpd",
"podNamespace": "composer-2-4-0-airflow-2-5-3-184dadaf",
"nextLineNumber": 1
}
Passaggi successivi
- Accedere all'interfaccia utente di Airflow
- Controllo dell'accesso (interfaccia a riga di comando di Airflow)