Acessar a interface do usuário da Web do Apache Airflow

Cloud Composer 1 | Cloud Composer 2

O Apache Airflow inclui uma interface do usuário (UI) da Web que pode ser usada para gerenciar fluxos de trabalho (DAGs), gerenciar o ambiente do Airflow e realizar ações 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 faz parte da arquitetura do ambiente do Cloud Composer.

Antes de começar

  • Você precisa ter um papel que possa ver os ambientes do Cloud Composer. Para mais informações, consulte Controle de acesso.

  • 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.

  • O Cloud Composer 2 é compatível com o recurso de controle de acesso baseado em papéis do Airflow (em inglês) na interface da Web do Airflow.

  • Se a opção Controles de API > Apps de terceiros não configurados > Não permitir que os usuários acessem apps de terceiros estiver ativada no Google Workspace e o Apache Airflow no app Cloud Composer não for explicitamente permitido, os usuários não poderão acessar a IU do Airflow, a menos que permitam explicitamente o aplicativo. Para permitir o acesso, execute as etapas descritas em Permitir o acesso à interface do Airflow no Google Workspace.

Como acessar a interface da Web do Airflow

O servidor da Web do Airflow é executado como uma carga de trabalho no cluster do ambiente. O servidor da Web é implantado no domínio composer.googleusercontent.com e fornece acesso à interface da Web do Airflow.

O Cloud Composer 2 fornece acesso à interface com base nas identidades dos usuários e nas vinculações de políticas do IAM definidas para os usuários. Em comparação com o Cloud Composer 1, o Cloud Composer 2 usa um mecanismo diferente que não depende do Identity-Aware Proxy.

Como acessar a interface da Web pelo console do Google Cloud

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

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na coluna Servidor da Web do Airflow, siga o link Airflow do seu ambiente.

Como limitar o acesso ao servidor da Web do Airflow

Os ambientes do Composer permitem limitar o acesso ao servidor da Web do Airflow:

  • É possível bloquear todo o acesso ou permitir o acesso de intervalos de IP externos IPv4 ou IPv6 específicos.
  • Não é possível configurar os intervalos de IP permitidos usando endereços IP particulares.

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

Substitua:

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

O comando gcloud mostra as propriedades de um ambiente do Cloud Composer, incluindo os URLs da interface da Web. Os URLs são listados como airflowUri e airflowByoidUri:

config:
  airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
  airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com

Reiniciar o servidor da Web

Ao depurar ou solucionar problemas de ambientes do Cloud Composer, alguns problemas podem ser resolvidos com a reinicialização do servidor da Web do Airflow. Reinicie o servidor da Web usando a API RestartWebServer ou o comando gcloud restart-web-server:

gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
  --location=LOCATION

Configurar o acesso à rede do servidor da Web

Os parâmetros de acesso do servidor da Web do Airflow não dependem do tipo de ambiente. Em vez disso, você configura o acesso ao servidor da Web separadamente. Por exemplo, um ambiente de IP privado ainda pode ter a IU do Airflow acessível pela Internet.

Não é possível configurar os intervalos de IP permitidos usando endereços IP particulares.

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. Na seção Configuração de rede, encontre o item Controle de acesso do servidor da Web e clique em Editar.

  5. Na caixa de diálogo Controle de acesso à rede do servidor da Web, faça o seguinte:

    • Para conceder acesso ao servidor da Web do Airflow de todos os endereços IP, selecione Permitir o acesso de todos os endereços IP.

    • Para restringir o acesso somente a intervalos de IP específicos, selecione Permitir acesso apenas de endereços IP específicos . No campo Intervalo de IP, especifique um intervalo de IP na notação CIDR. No campo Descrição, especifique uma descrição opcional para este intervalo. Se você quiser especificar mais de um intervalo, clique em Adicionar intervalo de IP.

    • Para proibir o acesso de todos os endereços IP, selecione Permitir acesso somente de endereços IP específicos e clique em Excluir item ao lado da entrada de intervalo vazia.

gcloud

Quando você atualiza um ambiente, os seguintes argumentos controlam os parâmetros de acesso do servidor da Web:

  • --web-server-allow-all fornece acesso ao Airflow de todos os endereços IP. Essa é a opção padrão.

  • --web-server-allow-ip restringe o acesso apenas a intervalos de IP de origem específicos. Para especificar vários intervalos de IP, use esse argumento várias vezes.

  • --web-server-deny-all proíbe o acesso a todos os endereços IP.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • WS_IP_RANGE: o intervalo de IP, na notação CIDR, que pode acessar a interface do Airflow.
  • WS_RANGE_DESCRIPTION: a descrição do intervalo de IP.

Exemplo:

gcloud composer environments update example-environment \
    --location us-central1 \
    --web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
    --web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"

API

  1. Crie uma solicitação de API [environments.patch][api-patch].

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.webServerNetworkAccessControl.

    2. No corpo da solicitação, especifique como os registros de tarefas do Airflow precisam ser salvos:

      • Para fornecer acesso ao Airflow de todos os endereços IP, especifique um elemento config vazio. O elemento webServerNetworkAccessControl não pode estar presente.

      • Para restringir o acesso apenas a intervalos de IP específicos, especifique um ou mais intervalos em allowedIpRanges.

      • Para proibir o acesso de todos os endereços IP, especifique um elemento webServerNetworkAccessControl vazio. O elemento webServerNetworkAccessControl precisa estar presente, mas não pode conter um elemento allowedIpRanges.

{
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    }
  }
}

Substitua:

  • WS_IP_RANGE: o intervalo de IP, na notação CIDR, que pode acessar a interface do Airflow.
  • WS_RANGE_DESCRIPTION: a descrição do intervalo de IP.

Exemplo:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerNetworkAccessControl

{
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "office net 1"
        },
        {
          "value": "192.0.4.0/24",
          "description": "office net 3"
        }
      ]
    }
  }
}

Terraform

No bloco allowed_ip_range, em web_server_network_access_control, especifique os intervalos de IP que podem acessar o servidor da Web.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    web_server_network_access_control {

      allowed_ip_range {
        value = "WS_IP_RANGE"
        description = "WS_RANGE_DESCRIPTION"
      }

    }

  }
}

Substitua:

  • WS_IP_RANGE pelo intervalo de IP, na notação CIDR, que pode acessar a IU do Airflow.
  • WS_RANGE_DESCRIPTION pela descrição do intervalo de IP;

Exemplo:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    web_server_network_access_control {
      allowed_ip_range {
        value = "192.0.2.0/24"
        description = "office net 1"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "office net 3"
      }

    }
}

A seguir