Accedi all'interfaccia a riga di comando di Airflow

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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, l'ottenimento di informazioni sulle esecuzioni e sulle attività dei DAG, l'aggiunta ed eliminazione di connessioni e utenti.

Comandi dell'interfaccia a riga di comando Airflow supportati

Airflow utilizza la sintassi dell'interfaccia a riga di comando Airflow 2, descritta nella documentazione di Airflow.

Per un elenco completo dei comandi dell'interfaccia a riga di comando di Airflow supportati, consulta il riferimento per il comando gcloud composer environments run.

Prima di iniziare

  • Devi disporre delle autorizzazioni per utilizzare Google Cloud CLI con Cloud Composer ed eseguire i comandi Airflow CLI.

  • Non è possibile eseguire i comandi della CLI di Airflow tramite kubectl in Cloud Composer 3. Questo approccio è stato ritirato ed è obbligatorio solo per le versioni di Cloud Composer precedenti alla 2.4.0.

Esegui i comandi dell'interfaccia a riga di comando Airflow

Per eseguire i comandi dell'interfaccia a riga di comando di Airflow nei tuoi ambienti, utilizza gcloud CLI:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    SUBCOMMAND \
    -- SUBCOMMAND_ARGUMENTS

Sostituisci quanto segue :

Separatore degli argomenti dei sottocomandi

Separa gli argomenti per il comando dell'interfaccia a riga di comando Airflow specificato con --:

  • Specifica i comandi CLI composti come sottocomando.
  • Specifica eventuali argomenti per i comandi composti come argomenti dei comandi secondari, 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 posizione con il flag --location o impostando la posizione predefinita.

Ad esempio, per attivare un DAG denominato sample_quickstart con l'ID 5077 nel tuo ambiente Cloud Composer:

gcloud composer environments run example-environment \
    --location us-central1 dags trigger -- sample_quickstart \
    --run-id=5077

Esegui i comandi dell'interfaccia a riga di comando Airflow tramite l'API Cloud Composer

In Cloud Composer 3, puoi eseguire i comandi dell'interfaccia a riga di comando 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 del tuo ambiente.
  • AIRFLOW_COMMAND: il comando dell'interfaccia a riga di comando Airflow che vuoi eseguire, ad esempio dags.
  • AIRFLOW_SUBCOMMAND: sottocomando del comando dell'interfaccia a riga di comando di Airflow che vuoi eseguire, ad esempio list.
  • (Facoltativo) SUBCOMMAND_PARAMETER: 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"
  ]
}

Stato del comando di polling

Dopo aver eseguito un comando dell'interfaccia a riga di comando Airflow tramite l'API Cloud Composer, controlla se il comando è stato completato correttamente inviando una richiesta PollAirflowCommand e controllando i campi in exitInfo per verificare la presenza di errori e codici di stato. Il campo output contiene linee 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
}

Passaggi successivi