0

我无法使用 AWS Cloud9 (c9) python flask 预览这个应用程序:

from flask import Flask
import os
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

host = 'localhost' # '0.0.0.0' #"127.0.0.1" # I tried all of these ip's

if __name__ == '__main__':
    app.debug = True
    port = int(os.environ.get("PORT", 8080)) # I also tried port was 5000
    app.run(host=host, port=port)

# This is the error I got 52.15.73.96 The connection has timed out
#The server at 52.15.73.96 is taking too long to respond.

这类似于运行烧瓶应用程序时的 AWS cloud9 超时

4

3 回答 3

3

答案是:您必须通过 AWS 防火墙。你必须

  1. 进入 EC2(来自所有 AWS 服务的列表)
  2. 单击安全组
  3. 单击您的 Cloud9 实例
  4. 点击入站
  5. 单击编辑
  6. 单击添加规则
  7. 添加此规则:

    • 对于类型,选择自定义 TCP 规则。- 所有交通也有效。
    • 对于端口范围,输入 8080、8081 或 8082。 - 如果您选择了“所有流量”,则默认为所有端口。
    • 对于 Source,选择 Anywhere,看起来像 0.0.0.0/0

    这是一个屏幕截图链接:https ://imgur.com/a/zhQbA

AWS 确实在其 C9 文档中隐藏了这一点。 https://docs.aws.amazon.com/cloud9/latest/user-guide/app-preview.html#app-preview-share-security-group 在通过 Internet 共享正在运行的应用程序中,步骤 2:设置实例的安全组

于 2018-04-17T15:13:56.907 回答
1

您需要0.0.0.0使用端口8080(或其他可用的 C9 端口)运行服务器。

app.run()将您的命令更改为以下内容:

app.run(host='0.0.0.0', port=8080, debug=True)

如果8080不起作用,请尝试使用80

于 2018-04-16T18:49:47.970 回答
0
flask run --host=127.0.0.1 --port=8080
于 2020-03-31T18:55:43.450 回答