如何使用AWS EB解决Flask内部服务器错误

时间:2019-12-29 22:50:36

标签: python amazon-web-services flask

我有一个运行Python 3.6的Elastic Beanstalk环境。我试图在其中运行Flask应用程序,但是当我单击Elastic Beanstalk提供的URL时,仍然出现500个内部服务器错误:

  

内部服务器错误

     

服务器遇到内部错误或配置错误,无法完成您的请求。

     

请通过root @ localhost与服务器管理员联系,以告知他们该错误发生的时间以及您在此错误发生之前所执行的操作。

     

有关此错误的更多信息,可在服务器错误日志中找到。

这是我的基本文件结构:

ProjectRoot/
    .ebextenstions/
        application.config
    .elasticbeanstalk/
        config.yml
    env
    myapp/
        static
        templates
        __init__.py
        routes.py
    .ebignore
    application.py
    requirements.txt

这是我的application.config文件:

option_settings:
  "aws:elasticbeanstalk:container:python":
    WSGIPath: application.py
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "application/static/"

我正在使用Elastic Beanstalk托管一个PHP网站,但是Flask似乎要复杂得多。我认为我的问题只是配置错误,但我尚未找到任何解决方案。

1 个答案:

答案 0 :(得分:-2)

我确实建议您使用Flask和SQLAlchemy的详细模式调试应用程序,以便您可以更好地了解发生了什么,在这一级别的详细信息中,我只能建议检查一些内容,例如AWS上的权限/ IAM,以便检查您的ElasticBeanstalk是否真的可以访问RDS,我假设ELB /应用程序使用一组凭据,并且您已在本地使用其他凭据进行了测试,对吗?

关于“详细模式”,请尝试将SQLALCHEMY_ECHO设置为True:http://flask-sqlalchemy.pocoo.org/2.3/config/还有未测试此选项ive:https://github.com/pallets/flask-sqlalchemy/pull/208/files?short_path=fd40cf2

在Flask应用中,您还可以将debug设置为True。

另一种选择是调试是否可以直接在RDS上与计算机/容器上的客户端连接,或者至少在telnet正常工作的情况下进行调试。