Я пытаюсь получить данные с моего веб-клиента (express -сервер) из моего бэкэнд-сервиса (также express -сервер). Локально это работает нормально, используя переменные окружения для установки backend-service-url. Но развернутый на AWS, он не позволит мне получить доступ от моего веб-клиента EC2 к моему внутреннему EC2.
Я регистрирую свою переменную среды для backend-службы (взято из AWS SSM Paramter Store), и она записывает правильный URL-адрес службы для моего экземпляра EC2 бэкэнда.
Но тогда происходит сбой, потому что он вызывает «GET host-url / service-url / endpoint» вместо «GET service-url / endpoint». Не знаю, если это проблема AWS или node.js / express.
Вот как я называю свой бэкэнд:
async function callEndpoint(endpointUrl) {
console.log("Fetching to: " + endpointUrl)
const response = await fetch(endpointUrl, {
method: 'GET',
});
let data = await response.json();
return data;
console.log выводит на экран правильное значение, но fetch, тем не менее, делает (я предполагаю, но не понимаю почему) его относительным путем, добавляя префикс host-url из моего внешнего интерфейса EC2 IP / DNS.
Не знаю насколько это актуально, но мои серверы, работающие в Docker контейнерах в кластере ECS (каждый контейнер имеет свой собственный экземпляр EC2).