我无法完全让Flask-SocketIO在AWS Elastic Beanstalk(ELB)上处理我的实例,但要求通过socketio.run(application)运行Flask-SocketIO,ELB似乎对全局应用程序进行了调用对象本身。
ELB文档指出,使用application.py作为文件名并提供可调用的应用程序对象(在这种情况下为Flask对象)使Elastic Beanstalk可以轻松找到应用程序的代码。
我的ELB实例日志显示错误RuntimeError:您需要使用事件服务器。有关更多信息,请参见文档的“部署”部分。
假设AWS调用application.run(),有什么方法可以解决此问题?
预先感谢
答案 0 :(得分:0)
Flask-SocketIO对负载均衡器和Web服务器有非常特定的要求。我认为您可以使用粘性会话配置ELB负载平衡器,这将使其起作用,但是我认为不起作用的部分是使用eventlet或gevent Web服务器,因为AWS以其自己的方式调用了callable。您需要的是一种使用socketio.run()
的方法或启动eventlet / gevent Web服务器的等效过程。