Interface da Web do Airflow

O Apache Airflow inclui uma interface da Web (em inglês) que pode ser usada para gerenciar fluxos de trabalho (DAGs), controlar o ambiente do Airflow e realizar tarefas administrativas. Por exemplo, é possível usar a interface da Web para analisar o progresso de um DAG, configurar uma nova conexão de dados ou verificar os registros de execuções anteriores do DAG.

Servidor da Web do Airflow

Todos os ambientes do Cloud Composer têm um servidor da Web que executa essa interface. O servidor da Web é separado do cluster do GKE do ambiente e é executado em uma instância do App Engine com um tipo de máquina fixo.

O servidor da Web analisa os arquivos de definição do DAG na pasta dags/ e pode acessar os dados e recursos do DAG para carregar o DAG e atender a solicitações HTTP.

O servidor da Web atualiza os DAGs a cada 60 segundos, que é o padrão de worker_refresh_interval no Cloud Composer. Um erro do servidor da Web poderá ocorrer se ele não puder analisar todos os DAGs dentro do intervalo de atualização.

O carregamento dos DAGs poderá exceder 60 segundos se houver um grande número desses arquivos ou uma carga de trabalho incomum para carregá-los. Para garantir que o servidor da Web permaneça acessível seja qual for o tempo de carregamento, configure o carregamento de DAGs assíncrono para analisá-los e carregá-los em segundo plano a um intervalo pré-configurado (disponível no composer-1.7.1-airflow-1.10.2 e em versões posteriores). Essa configuração também pode reduzir o tempo de atualização do DAG.

Além de exceder o intervalo de atualização do worker, o servidor da Web pode lidar normalmente com falhas de carregamento do DAG na maioria dos casos. Os DAGs que travam ou encerram o servidor da Web podem causar erros no navegador. Para mais informações, consulte Como resolver problemas de DAGs.

Se você continuar tendo problemas com o servidor da Web devido à análise do DAG, recomendamos que use o carregamento de DAGs assíncrono.

Antes de começar

  • A permissão a seguir é necessária para acessar o servidor da Web do Airflow no ambiente do Cloud Composer: composer.environments.get. Para mais informações, consulte Controle de acesso do Cloud Composer.

  • Durante a criação do ambiente, o Cloud Composer configura o URL do servidor da Web que executa a interface da Web do Airflow. Não é possível personalizar o URL.

  • Nos ambientes do Cloud Composer que executam o Airflow 1.10, o recurso Controle de acesso baseado em papéis (RBAC, na sigla em inglês) [página em inglês] da interface da Web do Airflow não é compatível.

Como acessar a interface da Web

O serviço do servidor da Web do Airflow é implantado no domínio appspot.com e concede acesso à interface da Web do Airflow. O Identity-Aware Proxy garante a segurança da interface, protegendo o acesso com base nas identidades do usuário.

Depois de criar um novo ambiente do Cloud Composer, levará até 25 minutos para que a interface da Web termine de ser hospedada e se torne acessível.

Como acessar a interface da web por meio do Console do Google Cloud

Para acessar a interface da Web do Airflow no Console do Google Cloud:

  1. Para ver os ambientes atuais do Cloud Composer, abra a página Ambientes.

    Abrir a página "Ambientes"

  2. Na coluna Servidor da Web do Airflow, clique no ícone de nova janela do ambiente que contém a interface da Web do Airflow que você quer visualizar.
  3. Faça login com a Conta do Google que tem as permissões apropriadas.

Como recuperar o URL da interface da Web por meio da ferramenta de linha de comando gcloud

É possível acessar a interface da Web do Airflow usando qualquer navegador. Para conseguir o URL da interface da Web, digite o seguinte comando gcloud:

gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION

onde:

  • ENVIRONMENT_NAME é o nome do ambiente;
  • LOCATION é a região do Compute Engine em que o ambiente está localizado.

O comando gcloud mostra as propriedades de um ambiente do Cloud Composer, incluindo o URL da interface da Web. O URL está listado como airflowUri.

airflowUri: https://uexamplebcd3fff-tp.appspot.com/
  dagGcsPrefix: gs://us-central1-example-environment-00a47695-bucket/dags
  gkeCluster: projects/example-project/zones/us-central1-a/clusters/us-central1-example-environment-00a47695-gke
  nodeConfig:
    diskSizeGb: 100
    location: projects/example-project/zones/us-central1-a
    machineType: projects/example-project/zones/us-central1-a/machineTypes/n1-standard-1
    network: projects/example-project/global/networks/default
    oauthScopes:
    - https://www.googleapis.com/auth/cloud-platform
    serviceAccount: N13597NNN465-compute@developer.gserviceaccount.com
  nodeCount: 3
  softwareConfig:
    imageVersion: composer-0.5.1-airflow-1.9.0
createTime: '2018-05-19T02:13:36.749Z'
name: projects/example-project/locations/us-central1/environments/example-environment
state: RUNNING
updateTime: '2018-05-19T02:30:21.387Z'
uuid: 66bd6a28-5b48-4da3-a0aa-898199b569da

Como configurar o carregamento de DAG assíncrono

Com o carregamento de DAG assíncrono (webserver-async_dagbag_loader), o servidor da Web cria um novo processo. O processo carrega os DAGs em segundo plano, envia os DAGs recém-carregados (dagbag_sync_interval) e, em seguida, fica suspenso.

O processo é ativado periodicamente para recarregar os DAGs (collect_dags_interval) e requer composer-1.7.1-airflow-1.10.2 ou posterior.

Para configurar o carregamento de DAG assíncrono, substitua as seguintes configurações do Airflow:

Seção e configuração Observações
webserver-async_dagbag_loader = True O valor padrão é falso.
webserver-collect_dags_interval = 30 O padrão é 30. Use um valor menor para fazer atualizações mais rápidas.
webserver-dagbag_sync_interval = 10 O padrão é 10.
webserver-worker_refresh_interval = 3600 O padrão é 60. Com o carregamento de DAG assíncrono, é possível usar um intervalo de atualização maior.

Observe que o recurso de serialização do DAG precisa ser desativado ao usar o carregamento de DAG assíncrono.