Я хочу развернуть приложение на экземпляре 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-адрес?
Или как мне подойти к этой проблеме?
Я думаю и то, и другое, простыми словами. Что я должен добавить в свой baseURL, чтобы он не выдавал мне эту ошибку и мог выполнять запросы axios
К сожалению, я не могу привести вам точный пример на JS, но вы можете получить информацию о метаданных EC2, запросив это: http://169.254.169.254/latest/meta-data/. Вы можете прочитать, что можно получить, запросив эту конечную точку здесь: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…. В вашем случае вы можете добавить local-ipv4 в конце указанной выше конечной точки, и вы получите частный IPv4 экземпляра EC2. Вы должны сделать так, чтобы он обновлялся динамически.
это может сработать, но я боюсь, что это сделает мое приложение слишком статичным, разве нет лучшего способа решить эту проблему?
Как сделать его статичным?
Я не уверен, что он будет работать нормально, если, скажем, я решу добавить балансировку нагрузки и т. д. Это может указывать только на один экземпляр все время. Должен быть лучший способ сделать это, я погуглил несколько вещей о последних / метаданных, и я не вижу, чтобы кто-то упоминал или работал таким образом с моим типом проектов :(
Позвольте нам продолжить обсуждение в чате.





Вы можете получить информацию о метаданных 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.
Какой у вас здесь вопрос? Как получить IP-адрес EC2 или динамически установить его в аксиомах?