Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Apache Airflow dispone di 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 le attività dei DAG, nonché per aggiungere ed eliminare connessioni e utenti.
Informazioni sulle versioni della sintassi dell'interfaccia a riga di comando
Airflow in Cloud Composer 1 fornisce due diverse sintassi per i comandi dell'interfaccia a riga di comando:
Sintassi dell'interfaccia a riga di comando di Airflow 1.10, disponibile in ambienti Cloud Composer con Airflow 1.10.
Sintassi dell'interfaccia a riga di comando di Airflow 2, ambienti Cloud Composer disponibili con Airflow 2.
Comandi dell'interfaccia a riga di comando di Airflow supportati
Per un elenco completo dei comandi dell'interfaccia a riga di comando di Airflow supportati, consulta il riferimento di gcloud composer environments run
.
Prima di iniziare
Devi disporre di autorizzazioni sufficienti per utilizzare lo strumento a riga di comando
gcloud
con Cloud Composer ed eseguire i comandi dell'interfaccia a riga di comando di Airflow. Per maggiori informazioni, consulta la sezione Controllo dell'accesso.Nelle versioni di Cloud Composer precedenti alla 2.4.0, devi accedere al piano di controllo del cluster dell'ambiente per eseguire i comandi dell'interfaccia a riga di comando di Airflow.
Esegui i comandi dell'interfaccia a riga di comando di Airflow
Per eseguire i comandi dell'interfaccia a riga di comando di Airflow nei tuoi ambienti, utilizza gcloud
:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.SUBCOMMAND
con uno dei comandi dell'interfaccia a riga di comando di Airflow supportati.SUBCOMMAND_ARGUMENTS
con argomenti per il comando dell'interfaccia a riga di comando di Airflow.
Separatore di argomenti sottocomando
Separa gli argomenti per il comando dell'interfaccia a riga di comando di Airflow specificato con --
:
Flusso d'aria 2
Per la sintassi dell'interfaccia a riga di comando di Airflow 2:
- Specifica i comandi dell'interfaccia a riga di comando composti come sottocomando.
- Specifica gli argomenti dei comandi composti come argomenti del sottocomando, dopo un separatore
--
.
gcloud composer environments run example-environment \
dags list -- --output=json
Flusso d'aria 1
Per la sintassi dell'interfaccia a riga di comando Airflow 1.10:
- Specifica i comandi dell'interfaccia a riga di comando come sottocomandi.
- Specifica eventuali argomenti dopo un separatore
--
.
gcloud composer environments run example-environment \
list_dags -- --report
Località predefinita
La maggior parte dei comandi gcloud composer
richiede una posizione. Puoi specificare la località con il flag --location
o impostando la località predefinita.
Esempio
Ad esempio, per attivare un DAG denominato sample_quickstart
con ID 5077
nel tuo ambiente Cloud Composer:
Flusso d'aria 2
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Flusso d'aria 1
gcloud composer environments run example-environment \
--location us-central1 trigger_dag -- sample_quickstart \
--run_id=5077
Esecuzione di comandi su un ambiente IP privato
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 agli endpoint pubblici è disabilitato nel cluster del tuo 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 tua rete VPC
- Acquisisci le credenziali del cluster. Esegui questo comando:
bash gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION \ --project PROJECT \ --internal-ip
- Usa
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 Cloud Composer
nell'elenco dei carichi di lavoro o utilizzando il comando kubectl get namespaces
.
Se l'accesso agli endpoint pubblici è abilitato nel cluster del tuo ambiente, puoi anche eseguire i comandi dell'interfaccia a riga di comando di Airflow da una macchina con un indirizzo IP esterno che viene aggiunto alle reti autorizzate. Per abilitare l'accesso dalla macchina, aggiungi l'indirizzo esterno della macchina all'elenco di reti autorizzate del tuo ambiente.
Risoluzione dei problemi
Nessuna connettività al piano di controllo del cluster
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 è presente alcuna connettività di rete dal computer su cui esegui questi comandi.
Soluzione: segui le linee guida presentate nella sezione
Esecuzione dei comandi in un ambiente IP privato
oppure utilizza le istruzioni disponibili nella sezione
Timeout dei comandi kubectl
.