Resolução de problemas do servidor Web do Airflow

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página fornece passos de resolução de problemas e informações para problemas comuns do servidor Web do Airflow.

O servidor Web do Airflow é um componente do Airflow que fornece uma interface do utilizador para gerir DAGs e tarefas do Airflow. Esta página descreve os passos de resolução de problemas para vários problemas de acesso ao servidor Web do Airflow do seu ambiente ou para avisos relacionados com o servidor Web visíveis nos registos do Airflow.

Não é possível aceder à IU do Airflow quando os controlos de acesso à rede estão ativados

Sintoma: depois de configurar os controlos de acesso do servidor Web, não é possível aceder à IU do Airflow. Normalmente, o código de erro apresentado nesta situação é 403.

Informações sobre o problema: o Cloud Composer suporta controlos de acesso à rede do servidor Web, que lhe permitem especificar intervalos de IP com autorização para estabelecer ligação ao servidor Web.

Os problemas de acesso à IU do Airflow resultam normalmente no erro 403. Para verificar se o erro está relacionado com os controlos de acesso à rede do servidor Web, faça o seguinte:

  1. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
  2. Aceda ao separador Configuração do ambiente.
  3. Verifique se o item Controlo de acesso ao servidor Web está definido como Todos os endereços IP têm acesso (predefinição).
  4. Se for configurado um valor diferente de Todos os endereços IP têm acesso (predefinição), o controlo de acesso à rede é ativado e a visibilidade da IU do Airflow é limitada aos intervalos de endereços IPv4 e IPv6 fornecidos. Neste caso, o problema pode estar relacionado com os controlos de acesso à rede do servidor Web.

Na maioria dos casos, a causa do problema é a incompatibilidade entre o IP pretendido que especificou e o IP que é realmente resolvido para estabelecer ligação à IU do Airflow. Para resolver o problema, faça o seguinte:

  1. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  2. Aceda ao separador Configuração do ambiente.

  3. Localize o item Controlo de acesso ao servidor Web e clique em Editar.

  4. Na caixa de diálogo Controlo de acesso à rede do servidor Web, selecione Permitir acesso a partir de todos os endereços IP.

  5. Aceda à IU do Airflow várias vezes e verifique se funciona sem problemas:

    • Se não tiver problemas, avance para o passo seguinte.

    • Se tiver um problema neste ponto, significa que o problema pode estar relacionado com a configuração das suas autorizações da IAM. Para mais informações sobre as autorizações de IAM para o Cloud Composer, consulte o artigo Controlo de acesso.

  6. Na caixa de diálogo Controlo de acesso à rede do servidor Web, selecione Permitir acesso apenas a partir de endereços IP específicos.

  7. Adicione o 0.0.0.0/0intervalo de IP e, em seguida, aceda à IU do Airflow várias vezes e verifique se funciona sem problemas:

    • Se não tiver problemas, o IP com o qual está a estabelecer ligação é um endereço IPv4.

    • Se tiver um problema neste ponto, significa que o IP com o qual está a estabelecer ligação é um endereço IPv6.

  8. Elimine o intervalo de IP 0.0.0.0/0 e adicione o intervalo de IP ::/0.

    • Se não tiver problemas, o IP com o qual está a estabelecer ligação é um endereço IPv6.

    • Se tiver um problema neste ponto, significa que o IP com o qual está a estabelecer ligação é um endereço IPv4.

  9. Agora, determinou se o seu endereço resolvido é IPv4 ou IPv6.

  10. Consoante o tipo de endereço, restrinja os intervalos de ::/0 ou 0.0.0.0/0 a intervalos mais específicos para validar o intervalo mais amplo quando o acesso deixa de funcionar:

    • Pode começar com a máscara de sub-rede ampla (como 192.0.2.0/8) que inclui o endereço que considera ser o seu endereço IP.

    • Para determinar o seu endereço IP, pode usar um serviço de terceiros que fornece o seu endereço IP externo quando visita a respetiva página. Pode pesquisar esses serviços através da consulta de pesquisa "qual é o meu endereço IP").

Os valores de configuração não são apresentados na página de configuração

Alguns parâmetros de configuração do Airflow estão ocultos na página de configuração para impedir o acesso a informações potencialmente confidenciais. Por exemplo, as credenciais para aceder à base de dados do Airflow não são apresentadas.

Para apresentar campos ocultos, substitua a seguinte opção de configuração do Airflow. Recomendamos que reverta as alterações depois de obter os valores necessários.

Secção Chave Valor Notas
webserver expose_config True O valor predefinido é non-sensitive-only. Defina como False para ocultar todos os parâmetros de configuração.

O DAG falha no servidor Web do Airflow ou faz com que devolva um erro "502 gateway timeout"

As falhas do servidor Web podem ocorrer por vários motivos diferentes. Verifique os registos do airflow-webserver no Cloud Logging para determinar a causa do erro 502 gateway timeout.

Computação de carga pesada

Esta secção aplica-se apenas ao Cloud Composer 1.

Ao contrário dos nós de trabalho e agendador, cujos tipos de máquinas podem ser personalizados para ter uma maior capacidade de CPU e memória, o servidor Web usa um tipo de máquina fixo, o que pode levar a falhas de análise DAG se a computação de tempo de análise for demasiado pesada.

Tenha em atenção que o servidor Web tem 2 vCPUs e 2 GB de memória. O valor predefinido para core-dagbag_import_timeout é 30 segundos. Este valor de tempo limite define o limite superior da duração que o Airflow dedica ao carregamento de um módulo Python na pasta /dags.

Autorizações incorretas

Esta secção aplica-se apenas ao Cloud Composer 1.

O servidor Web não é executado na mesma conta de serviço que os trabalhadores e o agendador. Como tal, os trabalhadores e o programador podem aceder a recursos geridos pelo utilizador aos quais o servidor Web não consegue aceder.

Recomendamos que evite aceder a recursos não públicos durante a análise sintática do DAG. Por vezes, isto é inevitável e tem de conceder autorizações à conta de serviço do servidor Web. O nome da conta de serviço é derivado do domínio do seu servidor Web. Por exemplo, se o domínio for example-tp.appspot.com, a conta de serviço é example-tp@appspot.gserviceaccount.com.

Erros de DAG

Esta secção aplica-se apenas ao Cloud Composer 1.

O servidor Web é executado no App Engine e é separado do cluster GKE do seu ambiente. O servidor Web analisa os ficheiros de definição DAG e pode ocorrer um 502 gateway timeout se existirem erros no DAG. O Airflow funciona normalmente sem um servidor Web funcional se o DAG problemático não estiver a interromper nenhum processo em execução no GKE. Neste caso, pode usar gcloud composer environments run para obter detalhes do seu ambiente e como solução alternativa se o servidor Web ficar indisponível.

Noutros casos, pode executar a análise DAG no GKE e procurar DAGs que gerem exceções fatais do Python ou que excedam o tempo limite (predefinição de 30 segundos). Para resolver problemas, estabeleça ligação a um shell remoto num contentor de trabalho do Airflow e teste a existência de erros de sintaxe. Para mais informações, consulte o artigo Testar DAGs.

O que se segue?