Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
O Apache Airflow tem uma interface de linhas de comando (CLI) que pode usar para realizar tarefas como acionar e gerir DAGs, obter informações sobre execuções de DAGs e tarefas, bem como adicionar e eliminar ligações e utilizadores.
Comandos da CLI do Airflow suportados
O Airflow usa a sintaxe da CLI do Airflow 2, que está descrita na documentação do Airflow.
Para ver uma lista completa dos comandos da CLI do Airflow suportados, consulte a referência do comando gcloud composer environments run
.
Antes de começar
Tem de ter autorizações para usar a CLI gcloud com o Cloud Composer e executar comandos da CLI Airflow.
Os comandos da CLI do Airflow consomem a
environments.executeAirflowCommand
quota.Não é possível executar comandos da CLI do Airflow através do
kubectl
no Cloud Composer 3. Esta abordagem foi descontinuada e só é necessária para versões do Cloud Composer anteriores à 2.4.0.
Execute comandos da CLI do Airflow
Para executar comandos da CLI do Airflow nos seus ambientes, use a CLI gcloud:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Substitua o seguinte :
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.SUBCOMMAND
: um dos comandos da CLI do Airflow suportados.SUBCOMMAND_ARGUMENTS
com argumentos para o comando da CLI do Airflow.
Separador de argumentos de subcomando
Separe os argumentos do comando da CLI do Airflow especificado com --
:
- Especifique comandos da CLI compostos como um subcomando.
- Especifique quaisquer argumentos para comandos compostos como argumentos de subcomando,
após um separador
--
.
Exemplo:
gcloud composer environments run example-environment \
dags list -- --output=json
Localização predefinida
A maioria dos comandos do gcloud composer
requer uma localização. Pode especificar a localização com a flag --location
ou definindo a localização predefinida.
Por exemplo, para acionar um DAG denominado sample_quickstart
com o ID 5077
no seu ambiente do Cloud Composer:
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Execute comandos da CLI do Airflow através da Cloud Composer API
No Cloud Composer 3, pode executar comandos da CLI do Airflow através da API Cloud Composer.
Executar um comando
Construa um pedido de API environments.executeAirflowCommand
:
{
"environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"command": "AIRFLOW_COMMAND",
"subcommand": "AIRFLOW_SUBCOMMAND",
"parameters": [
"SUBCOMMAND_PARAMETER"
]
}
Substitua o seguinte:
PROJECT_ID
: o ID do projeto.LOCATION
: a região onde o ambiente está localizado.ENVIRONMENT_NAME
: o nome do seu ambiente.AIRFLOW_COMMAND
: comando da CLI do Airflow que quer executar, comodags
.AIRFLOW_SUBCOMMAND
: subcomando do comando da CLI do Airflow que quer executar, comolist
.- (opcional)
SUBCOMMAND_PARAMETER
: parâmetros para o subcomando. Se quiser usar mais do que um parâmetro, adicione mais itens à lista.
Exemplo:
// 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"
]
}
Verifique o estado do comando
Depois de executar um comando da CLI do Airflow através da API Cloud Composer, verifique se o comando foi concluído com êxito fazendo um pedido PollAirflowCommand e inspecionando os campos em exitInfo
quanto a erros e códigos de estado. O campo output
contém linhas de registo.
Para obter o estado de execução do comando e obter registos, forneça os valores executionId
, pod
e podNamespace
devolvidos por ExecuteAirflowCommandRequest
:
Exemplo:
// 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
}