Попытка сделать общедоступный URL-адрес AWS Cloud9 - PullRequest
0 голосов
/ 06 июля 2019

Я использую AWS Cloud9, и это было гладко, но сейчас я пытаюсь сделать свой URL общедоступным, чтобы я мог делать HTTP-запросы в Postman, и я действительно изо всех сил. Я очень начинающий разработчик полного стека, и любая помощь будет признательна.

Спасибо, Стивен

Я пытаюсь правильно следовать этому руководству:

https://docs.aws.amazon.com/cloud9/latest/user-guide/app-preview.html

В частности, я перехожу к шагу 4, где он просит меня изменить IP-адрес в моем коде. Когда я меняю IP-адрес app.listen приложения Node JS Express на IP-адрес моего экземпляра EC2, я получаю сообщение об ошибке.

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

var express = require("express");
var app = express();

app.set("view engine", "ejs"); 

app.get("/", function (req, res){
    res.render("helloWorld");
});


app.listen(8080, '**AWS EC2 instance IP**', function(){
    console.log("Server Has Started!");
});

Работает нормально, когда я не указываю IP-адрес в app.listen, но тогда, конечно, я могу получить доступ к серверу только с другой вкладки в том же браузере. Вот что выдает консоль, когда я запускаю код с включенным AWS EC2 экземпляр IP в комплекте:

events.js:174

      throw er; // Unhandled 'error' event

      ^



Error: listen EADDRNOTAVAIL: address not available **AWS EC2 instance IP**:8080

    at Server.setupListenHandle [as _listen2] (net.js:1262:19)

    at listenInCluster (net.js:1327:12)

    at doListen (net.js:1460:7)

    at process._tickCallback (internal/process/next_tick.js:63:19)

    at Function.Module.runMain (internal/modules/cjs/loader.js:832:11)

    at startup (internal/bootstrap/node.js:283:19)

    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

Emitted 'error' event at:

    at emitErrorNT (net.js:1306:8)

    at process._tickCallback (internal/process/next_tick.js:63:19)

    [... lines matching original stack trace ...]

    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

1 Ответ

1 голос
/ 06 июля 2019

Экземпляры EC2 не имеют своих публичных IP-адресов, связанных со стеком IP.Трансляция с общедоступного IP-адреса на частный IP-адрес экземпляра автоматически обрабатывается интернет-шлюзом.

Указание частного IP-адреса экземпляра - это то, что вам действительно нужно сделать, даже если это не совсем понятно, что это правильно.Или, как указано в руководстве, используйте 0.0.0.0, что означает «все интерфейсы».

...