Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Bloqueio de CORS

Inicialmente, minha api só executou o script Infraestrutura.sh depois que removi as configuraçoes de FARGATE do arquivo ECS.tf.

fargate_capacity_providers = {
FARGATE = {
default_capacity_provider_strategy = {
weight = 100
}
}
}

Ela subiu e possui a url http://curso-serverless3-api-550392250.us-east-1.elb.amazonaws.com. Todavia, não consigo executar o teste de cadastramento ou enviar o arquivo mariculas.csv. Aparentemente é um bloqueio de CORS, mas obtenho "BAD GATEWAY" quando ten acessar diretamente http://curso-serverless3-api-550392250.us-east-1.elb.amazonaws.com/anulos. As configuraćões de CORS constam do arquivo serverlees.yaml e não efetuei nenhuma alteraćão na api-connect.js.

Tela de erro DevTools 1

Tela de erro DevTools 2

Tela de erro BAD GATEWAY

serverless yaml parte 1

serverless yaml parte 2

serverless yaml parte 3

arquivo api-connect parte 1

serverless yaml parte 2

1 resposta

Olá, Nelson! Como vai?

Pelo que você descreveu, parece que há dois problemas distintos acontecendo na sua configuração: um relacionado ao bloqueio de CORS e outro ao erro "502 Bad Gateway". Vamos analisar cada situação com cuidado para encontrar a melhor solução.

Erro de bloqueio de CORS

O bloqueio de CORS ocorre quando o navegador impede uma requisição por questões de segurança entre origens diferentes. Como você não efetuou nenhuma alteração no arquivo api-connect.js e as configurações de CORS constam do arquivo serverless.yaml, é importante verificar se essas configurações estão realmente corretas e completas. Certifique-se de que o domínio de origem do seu front-end está devidamente permitido.

No seu serverless.yaml, verifique se a configuração está semelhante a esta:

functions:
  myFunction:
    events:
      - http:
          path: /alunos
          method: post
          cors:
            origin: '*'
            headers:
              - Content-Type
              - X-Amz-Date
              - Authorization
              - X-Api-Key
              - X-Amz-Security-Token
              - X-Amz-User-Agent

Ajuste o valor de "origin" para permitir apenas os domínios desejados, substituindo o asterisco pelo endereço específico do seu front-end quando necessário.

Erro 502 Bad Gateway

Considerando que inicialmente sua API só executou o script Infraestrutura.sh depois que você removeu as configurações de FARGATE do arquivo ECS.tf, é possível que algum serviço ainda não esteja respondendo corretamente. O erro "Bad Gateway" indica que o servidor não conseguiu processar a requisição adequadamente.

Algumas verificações importantes:

  • Confirme se todos os serviços necessários estão rodando corretamente no ambiente ECS.
  • Verifique os logs detalhados do serviço para identificar possíveis falhas internas.
  • Certifique-se de que a URL e o endpoint estão corretos, incluindo o caminho completo para o recurso que você está tentando acessar.
  • Revise se a remoção das configurações de FARGATE com weight 100 não impactou outras dependências da sua infraestrutura.

Vale lembrar que o erro de Bad Gateway muitas vezes precisa ser resolvido antes de qualquer diagnóstico conclusivo sobre o CORS, pois se a API não está respondendo corretamente, o comportamento do bloqueio pode parecer relacionado ao CORS mas ter outra origem.

Após verificar os logs do seu serviço ECS, você conseguiu identificar alguma mensagem de erro específica que possa nos dar mais detalhes sobre o que está causando o problema?

Espero ter ajudado e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!