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, que é descrita na documentação do Airflow.
O Cloud Composer 3 suporta os seguintes comandos da CLI do Airflow:
(Airflow 2 e 3) O comando
gcloud composer environments runexecuta comandos da CLI do Airflow para o seu ambiente. Alguns comandos estão bloqueados e não é possível executá-los. Consulte a referência do comando para ver a lista de comandos da CLI do Airflow suportados.(Airflow 3) A
airflowctlferramenta de linha de comandos suporta um subconjunto de comandos da CLI do Airflow e executa-os através da API REST do Airflow. Todos os comandos disponíveis emairflowctlsão suportados no Cloud Composer. Certifique-se de que a conta do Airflow do utilizador tem uma função do Airflow que pode executar um comando específico.
Antes de começar
Para executar comandos da CLI do Airflow através da CLI do Google Cloud:
A sua Conta Google tem de ter autorizações para usar a CLI do Google Cloud com o Cloud Composer e executar comandos da CLI do Airflow.
Os comandos da CLI do Airflow executados através da CLI do Google Cloud consomem a
environments.executeAirflowCommandquota.
Para executar comandos da CLI do Airflow através da
airflowctl ferramenta de linha de comandos (no Airflow 3):
A sua Conta Google tem de ter a autorização
composer.environments.get. É fornecido pela função que pode ver ambientes do Cloud Composer. A ferramenta de linha de comandosairflowctlnão requer autorizações para executar comandos da CLI do Airflow.Os comandos da CLI do Airflow executados através do
airflowctlnão consomem a quota.environments.executeAirflowCommand
Execute comandos da CLI Airflow com a CLI gcloud
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_ARGUMENTScom 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 com o airflowctl
A airflowctlferramenta de linha de comandos é uma utilidade de linha de comandos fornecida pelo Airflow para executar comandos da CLI do Airflow. Suporta um subconjunto de comandos da CLI do Airflow e executa-os através da API REST do Airflow. Todos os comandos disponíveis em airflowctl são suportados no Cloud Composer.
A autorização e a autenticação com o airflowctl no Cloud Composer
funcionam da seguinte forma:
Uma vez que o
airflowctlusa a API REST do Airflow, certifique-se de que a conta de utilizador do Airflow associada à sua Conta Google ou conta de serviço tem uma função do Airflow com autorizações suficientes para executar um comando. Por exemplo, alguns comandos só podem ser executados por utilizadores do Airflow com a funçãoAdmin.O token da API usado por
airflowctlé fornecido com o comandogcloud auth. Por predefinição, o token tem um período de validade de 1 hora. Pode alterá-lo com o argumento--lifetimefornecido a este comando.
Para autenticar com o airflowctl, execute o seguinte comando:
airflowctl auth login \
--api-url WEB_SERVER_URL \
--api-token $(gcloud auth print-access-token)
Substitua o seguinte:
WEB_SERVER_URL: o URL do servidor Web do Airflow. Certifique-se de que este URL não tem uma barra à direita ("/").
Exemplo:
airflowctl auth login \
--api-url https://example-dot-us-central1.composer.googleusercontent.com \
--api-token $(gcloud auth print-access-token)
Depois de se autenticar com o airflowctl, pode executar comandos da CLI do Airflow:
airflowctl dags list
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
}