Accedi all'interfaccia a riga di comando di Airflow

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 run esegue 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 airflowctl strumento a riga di comando 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. 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.executeAirflowCommand quota.

Per eseguire i comandi Airflow CLI tramite lo airflowctl strumento a riga di comando (in Airflow 3):

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_ARGUMENTS con 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é airflowctl utilizza 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 ruolo Admin.

  • Il token API utilizzato da airflowctl viene fornito con il gcloud auth application-default print-access-token comando. Per impostazione predefinita, il token ha un periodo di scadenza di 1 ora. Puoi modificarlo con l'argomento --lifetime fornito 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:

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 esempio dags.
  • AIRFLOW_SUBCOMMAND: il sottocomando per il comando Airflow CLI che vuoi eseguire, ad esempio list.
  • (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
}

Passaggi successivi