Axios baseUrl на EC2, ссылка на IP-адрес

Я хочу развернуть приложение на экземпляре EC2, но столкнулся с проблемой с вызовами axios. Однако все работало нормально в среде разработки, потому что на localhost. После того, как я развернул это приложение на экземпляре EC2, я столкнулся с проблемой POST http://localhost:3000/stop 0 () всякий раз, когда я нажимал кнопку остановки или что-либо еще на веб-сайте.

Все приложение разработано с помощью next.js, и я установил там axios, который во время разработки был настроен как

import axios from 'axios'

const instance = axios.create({
    baseURL: 'http://localhost:3000'
})

export default instance;

Я знаю, что мне нужно изменить этот baseURL на IP-адрес, предоставленный EC2, но как я могу сделать это динамически, чтобы baseURL напрямую получил текущий глобальный IP-адрес?

Или как мне подойти к этой проблеме?

Какой у вас здесь вопрос? Как получить IP-адрес EC2 или динамически установить его в аксиомах?

AlexK 15.10.2018 15:51

Я думаю и то, и другое, простыми словами. Что я должен добавить в свой baseURL, чтобы он не выдавал мне эту ошибку и мог выполнять запросы axios

Stas 15.10.2018 15:54

К сожалению, я не могу привести вам точный пример на JS, но вы можете получить информацию о метаданных EC2, запросив это: http://169.254.169.254/latest/meta-data/. Вы можете прочитать, что можно получить, запросив эту конечную точку здесь: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…. В вашем случае вы можете добавить local-ipv4 в конце указанной выше конечной точки, и вы получите частный IPv4 экземпляра EC2. Вы должны сделать так, чтобы он обновлялся динамически.

AlexK 15.10.2018 15:58

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

Stas 15.10.2018 16:08

Как сделать его статичным?

AlexK 15.10.2018 16:10

Я не уверен, что он будет работать нормально, если, скажем, я решу добавить балансировку нагрузки и т. д. Это может указывать только на один экземпляр все время. Должен быть лучший способ сделать это, я погуглил несколько вещей о последних / метаданных, и я не вижу, чтобы кто-то упоминал или работал таким образом с моим типом проектов :(

Stas 15.10.2018 16:18

Позвольте нам продолжить обсуждение в чате.

AlexK 15.10.2018 16:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
7
822
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете получить информацию о метаданных EC2, запросив это: http://169.254.169.254/latest/meta-data/. Вы можете прочитать, что можно получить, запросив эту конечную точку здесь: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-retrieval. В вашем случае вы можете добавить local-ipv4 в конце конечной точки выше, и вы получите частный IPv4 экземпляра EC2.

Другие вопросы по теме