【发布时间】:2018-05-30 16:50:30
【问题描述】:
大家好,我正在尝试使用烧瓶设置 AWS cloud9 环境来开发 Web 应用程序。我是 AWS/flask 的新手,遇到了一个问题。 IDE 环境和在我的浏览器中预览应用程序之间似乎存在问题(我使用的是 chrome,但也在 IE 中尝试过)。
来自 app.py:
import os
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World'
app.run(host=os.getenv('IP', '0.0.0.0'), port=int(os.getenv('PORT', 8080)))
if __name__ == '__main__':
app.run()
app.debug(True)
当我在终端中运行它时(以 root 身份):
[root@ip-172-31-11-201 environment]# python ./app.py
Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
当我右键单击http://0.0.0.0:8080/ 时,它将打开一个 yab 并将我重定向到公共 IP x.x.x.x:8080 并最终超时并给我:
err_connection_timeout
当我尝试使用 IDE 运行选项运行应用程序时,我会:
Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
此时它也会超时。所以这让我很困惑,当我在 cloud9 IDE 之外运行它时,我没有这个问题。我知道在文档中你应该指向 8080 端口上的 0.0.0.0。所以我不太确定为什么用 run 运行它会改变我指定的 IP。
我也尝试过手动输入我的项目和用户名:
此时它会将我重定向到一个页面,并告诉我“找不到我的用户名”。然后我尝试设置一个完成的cloud9.io帐户,我确认了我的帐户但无法登录并且仍然有“找不到用户名”页面。
之后,我用 sublime 将 0.0.0.0 替换为 127.0.0.1 在本地测试了来自 cloud9 的 app.py 文件,它在本地工作。
我的配置中是否缺少任何内容?自 AWS 收购 cloud9 以来,设置有什么变化吗?我一直在关注在线教程和视频,但无法解决这个问题。
从 IDE 环境:
# python --version
Python 2.7.12
# pip freeze flask
astroid==1.5.3
aws-cfn-bootstrap==1.4
awscli==1.11.132
Babel==0.9.4
backports.functools-lru-cache==1.4
backports.ssl-match-hostname==3.4.0.2
boto==2.42.0
botocore==1.5.95
chardet==2.0.1
click==6.7
cloud-init==0.7.6
CodeIntel==0.9.3
colorama==0.2.5
configobj==4.7.2
configparser==3.5.0
docutils==0.11
ecdsa==0.11
enum34==1.1.6
Flask==0.12.2
futures==3.0.3
gyp==0.1
ikpdb==1.1.2
Inflector==2.0.11
iniparse==0.3.1
isort==4.2.15
itsdangerous==0.24
jedi==0.11.0
Jinja2==2.7.2
jmespath==0.9.2
jsonpatch==1.2
jsonpointer==1.0
kitchen==1.1.1
lazy-object-proxy==1.3.1
lockfile==0.8
MarkupSafe==0.11
mccabe==0.6.1
paramiko==1.15.1
parso==0.1.0
PIL==1.1.6
ply==3.4
pyasn1==0.1.7
pycrypto==2.6.1
pycurl==7.19.0
pygpgme==0.3
pyliblzma==0.5.3
pylint==1.7.4
pylint-django==0.7.2
pylint-flask==0.5
pylint-plugin-utils==0.2.6
pystache==0.5.3
python-daemon==1.5.2
python-dateutil==2.1
pyxattr==0.5.0
PyYAML==3.10
requests==1.2.3
rsa==3.4.1
simplejson==3.6.5
singledispatch==3.4.0.3
six==1.11.0
subprocess32==3.2.7
urlgrabber==3.10
urllib3==1.8.2
virtualenv==15.1.0
Werkzeug==0.13
wrapt==1.10.11
yum-metadata-parser==1.1.4
zope.cachedescriptors==4.3.0
感谢您的帮助!
【问题讨论】:
-
可能是您没有使用 HTTPS。请参阅 AWS 文档。
To help improve code safety, in the address box of the application preview tab in the IDE, AWS Cloud9 always uses https. This behavior cannot be changed.docs.aws.amazon.com/cloud9/latest/user-guide/…
标签: python flask amazon-ec2 cloud9-ide aws-cloud9