Как подключить интерфейс, размещенный на S3, к серверной части, размещенной на Elastic beanstalk?

#node.js #reactjs #amazon-web-services #amazon-s3 #amazon-elastic-beanstalk

#node.js #reactjs #amazon-веб-сервисы #amazon-s3 #amazon-elastic-beanstalk

Вопрос:

Я запустил сборку npm в своем приложении react и открыл корзину S3 в AWS, изменил ее, чтобы она стала статическим хостом веб-сайта, и загрузил в нее содержимое папки сборки react. Теперь я могу получить доступ к интерфейсной части.

Моя серверная часть, работающая на node amp; express, полностью находится в другом пакете. На протяжении всей разработки я запускал «nodemon app» и «npm start» по отдельности и подключал их через прокси.

Я раньше использовал Elastic Beanstalk для запуска веб-приложения, но раньше весь пакет был в одном, и мне никогда не приходилось подключать 2 экземпляра сервера, поэтому я не понимаю, как я могу заставить интерфейс отправлять POST-запросы и подключаться к websockets с S3 на EBS.

Например, мой интерфейс подключался к серверной части во время разработки с помощью этого:

 endpoint: 'http://localhost:3000'
this.state.io = socket.connect(this.state.endpoint);
  

Должен ли я теперь изменить это на доменное имя экземпляра EBS?

Я также использую Axios для своих POST-запросов. Как интерфейс узнает, что нужно подключаться конкретно к моему EBS?

Буду признателен за любую помощь, спасибо.

Комментарии:

1. У меня почти идентичная проблема, и поскольку вопрос был задан 2 года назад, я полагаю, вы уже нашли решение. Можете ли вы поделиться этим?

2. Привет, чувак, в итоге я использовал Heroku. Это было для университетского проекта, и Heroku сделал это намного проще.

Ответ №1:

Установите конечную точку в домене, где размещен ваш API. Это должен быть Elastic Beanstalk. Чтобы избежать проблем с CORS, было бы проще, если бы вы настроили все это под одним доменом. Для этого вам, вероятно, понадобится CloudFront, или вы можете воспользоваться ярлыком и подключить Apache к вашим запросам прокси-сервера Elastic Beanstalk к S3.

Комментарии:

1. Если бы я должен был настроить все это под одним доменом, нужно ли было бы мне объединить все пакеты как из внешнего интерфейса, так и из бэкэнда в один package.json и переместить все в одну папку? И нужно ли по-прежнему запускать React, если он находится в той же среде? Спасибо за помощь