Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Load Balancer somente carrega o conteiner default e dá 404 nos demais

Considerando uma estrutura muito parecida com a do curso, onde tenho dois containers, estou lutando há 3 dias com um problema que parece estar relacionado com regra de target group. Descrição das APIs:

a) API de autenticação no endereço: http://meu-elb-address.com/auth b) API de consulta no endereço: http://meu-elb-address.com/consulta

Cada qual num task manager diferente, rodando tranquilas sem o load balancer, usando a opção Actions > Run Task. Porém, ao colocar no load balancer, apenas o target group default carrega corretamente no browser, o secundário sempre dará 404 Page Not Found.

Nas regras do listener tenho: IF Path is /consulta THEN Forward to consulta

O path de consulta no docker é http://0.0.0.0.0:5000/consulta O path de auth no docker é http://0.0.0.0.0:5000/auth (default no listener)

O container que estiver default no listener e suas pastas funcionam corretamente, porém, o que não é default sempre retornará 404, sendo ele "consulta" ou "auth".

Já esgotei minha imaginação para tentar resolver o problema.

  • O serviço é em Python/Flask
  • A ami que estou usando é otimizada para ECS
  • Todos os serviços estão rodando dentro da mesma VPC

A saúde dos target groups está OK, sem apresentar nenhum problema.

Alguém tem alguma ideia do que estou deixando passar?

3 respostas

Olá Edson, tudo bem? Peço desculpas pela demora em ti responder! Realmente é bastante estranho, porém me surgem uma dúvida, você falou que ambos está rodando na mesma VPC, porém essa VPC é a do ECS? E você adicionou ambas no Security Group do ECS?

Fico aguardando retorno!

solução!

Jonilson, boa noite!

Ambos os microsserviços apresentavam problema porque o swagger do serviço, que é gerado em tempo real pela biblioteca restplus do Flask, sempre tenta escrever o js por default na raiz do domínio, que na verdade pertence ao container default. A solução aqui foi simplesmente mudar o path do js para ser escrito na pasta do container secundário.

Ou seja, a configuração do ECS estava redondinha, o problema estava na verdade no Python. =)

Entendi Edson, que bom que conseguiu identificar e solucionar o problema e mais legal ainda que compartilhou aqui na comunidade! Continue assim e bons estudos!