Instalação e configuração
Configurando o ambiente local 'Hello World'
O código-fonte está disponibilizado no perfil do GitHub do Ministério da Gestão e da Inovação em Serviços Públicos.
Neste título, fornecemos abaixo uma configuração demonstrativa para que você possa executar o Ro-DOU no seu computador. Para isso, é necessário ter o Docker Compose na versão 1.29 ou maior instalado. Os passos para a instalação estão disponíveis em https://docs.docker.com/compose/install/ ou em tutoriais no YouTube.
Após clonar o repositório do Ro-DOU para o seu computador com o comando git clone
, acesse o diretório pelo terminal e execute os comandos a seguir:
make run
Este comando baixa as imagens Docker necessárias, efetua o build do container Docker do Ro-DOU e executa todos os demais passos necessários.
O Apache Airflow, que também é usado para rodar o Ro-DOU, pode demorar alguns minutos para se configurar na primeira vez. Posteriormente, ele estará disponível em http://localhost:8080/. Para se autenticar e acessar o Apache Airflow, entre no link e utilize login airflow
e senha airflow
.
Na página sobre o que é o Ro-DOU, explicamos o que é um grafo acíclico dirigido (DAG) do Airflow e como obter mais informações sobre este conceito.
Na tela inicial do Airflow, são fornecidos clippings de exemplo. A partir dos arquivos YAML (.yaml) do diretório dag_confs/
, é possível manipular e customizar as pesquisas de clipping desejadas nos diários oficiais. Dentro dos arquivos YAML, é possível, por exemplo, definir palavras-chave de busca e um endereço de e-mail para recebimento de uma mensagem com os resultados da busca no(s) diário(s) oficial(is).
Para executar qualquer DAG do Airflow, é necessário ligá-la. Inicialmente, todas as DAGs ficam pausadas por padrão. Sugerimos começar testando o clipping all_parameters_example. Utilize o botão toggle para ligá-lo. Após ativá-lo, o Airflow executará a DAG uma única vez. Clique no nome da DAG para visualizar o detalhe da execução.
Você observará que, tanto na visualização em árvore (Tree) como na visualização em Grafo (Graph) dentro do Apache Airflow, é possível constatar se houve algum resultado encontrado na API da Imprensa Nacional para os termos e demais parâmetros deste clipping. Se a tarefa chamada "send_report" estiver na cor verde, significa que foi encontrado um resultado e que uma mensagem de e-mail foi enviada para o endereço configurado no arquivo YAML.
Para visualizar a mensagem de e-mail, acesse o endereço http://localhost:5001/. Este é um serviço que simula uma caixa de e-mail (servidor SMTP) para fins de experimentação. Voilà!.
Lembre-se que o arquivo de configuração deste clipping está na pasta dag_confs/
. Confira aqui no GitHub o conteúdo do arquivo YAML.
Agora, faremos um segundo teste: o clipping terms_from_variable, seguindo os mesmo passos. Neste caso, os termos pesquisados estão listados em uma variável do Airflow e podem ser modificados pela interface gráfica. Acesse no menu Admin >> Variables ou pela URL http://localhost:8080/variable/list/.
Leia a seção Configurando em Produção para instalar o Ro-dou utilizando um provedor SMTP real que enviará os e-mails para os destinatários verdadeiros.
Observação: Para utilizar o source: - INLABS
, é necessário criar a conexão inlabs_db
no Apache Airflow, apontando para o banco Postgres
que está carregado com os dados do inlabs. Você poderá encontrar aqui um exemplo de como carregar um banco com os dados do inlabs: ro-dou_inlabs_load_pg_dag.py
.
Quando tiver terminado de utilizar o ambiente de teste do Ro-DOU, desligue-o por meio do seguinte comando:
make down
Configurando o ambiente de produção
Para utilizar o Ro-DOU em ambiente de produção, é necessário que o servidor tenha disponível um serviço SMTP que será utilizado pelo Apache Airflow para envio de mensagens de e-mail pela Internet. Siga os seguintes passos:
-
Utilize as credenciais do serviço SMTP (host, usuário, senha, porta etc.) para editar o arquivo
docker-compose.yml
, substituindo as variáveis referentes ao serviço SMTP, a exemplo deAIRFLOW__SMTP__SMTP_HOST
. -
Ao final do arquivo
docker-compose.yml
, remova as linhas que declaram o serviço smtp4dev, uma vez que ele não será mais necessário.
Uma vez executados esses passos, basta agora inicializar o Ro-DOU por meio do comando:
make run