Criando uma API utilizando Flask no módulo de inteligência

Para configurar uma aplicação flask no módulo de inteligência, existem alguns pré-requisitos. Para demonstrar esse passo-a-passo, vamos utilizar um template básico de aplicação flask.

Estrutura de pastas

.
├── app.py  
└── main.orchest

Código da aplicação

from flask import Flask

app = Flask(__name__)

@app.route('/')
def welcome():
    return "Welcome to my Flask application!"

if __name__ == '__main__':
    app.run(host='0.0.0.0')

Nota importante: É essencial definir o parâmetro host como '0.0.0.0' para garantir que sua aplicação seja acessível a partir de endereços IP externos. Ao configurar o host dessa maneira, a aplicação aceitará conexões de qualquer endereço IP, em vez de apenas conexões locais (o que seria o caso se o host fosse definido como '127.0.0.1', por exemplo).

Configuração do ambiente

  1. Configure o ambiente da mesma forma como está disposto na imagem abaixo:
  2. Realize a construção do ambiente.

Criando o serviço do Flask

  1. No projeto do módulo de inteligência, clique em Data Apps:

  1. Clique em Edit data apps.
  2. Clique em Add service.
  3. Uma caixa de diálogo será aberta. Clique em Create custom service.
  4. Um serviço genérico será criado. Clique na linha para editar esse data app.
  5. Configure o serviço com as seguintes configurações:
    1. Image: Selecione o ambiente que você construiu
    2. Command: bash
    3. Args: -c python3 /project-dir/app.py
    4. Project directory: /project-dir
    5. Data directory: /data
    6. Ports: Aqui você deverá inserir a porta que sua aplicação Flask expõe. A porta padrão é 5000.
    7. Preserve Base Path: Esse campo deve estar desmarcado. Quando marcado, por conta da configuração do nginx, o serviço é mapeado para http://internal_ip:5000/pdp-service-flask-12278767-bd14-4731f258d482-fa66-4655_5000, mas o que precisamos é que seja mapeado para http://internal_ip:5000/.
    8. Exposed: Essa opção deverá estar marcada.
    9. Authentication Required: Essa opção indica se é necessário estar autenticado no módulo de inteligência para acessar a API.
  1. Save
  2. Reinicie a sessão para ativar o serviço

Verificação

Ao acessar a URL que está disposta no serviço, você deverá obter o seguinte retorno: