当前位置: 首页 > 知识库问答 >
问题:

在豆茎上部署flask-socketio

巫马令
2023-03-14

我无法让Flask-SocketIO与我在AWS弹性豆茎(ELB)上的实例一起工作,由于需要使用socketio.run(application)运行Flask-SocketIO,ELB似乎要调用全局应用程序对象本身。

ELB文档指出,使用application.py作为文件名并提供一个可调用的应用程序对象(在本例中是Flask对象)允许Elastic Beanstalk轻松找到应用程序的代码。

假设AWS调用application.run(),有什么方法可以解决这个问题吗?

提前致谢

共有1个答案

姜建德
2023-03-14

Flask-SocketIO对负载均衡器和web服务器有非常特殊的要求。我认为您可以使用粘性会话配置ELB负载平衡器,这将使其工作,但我认为不起作用的部分是使用eventlet或gevent web服务器,因为AWS以自己的方式调用可调用的。您需要的是使用socketio.run()或启动eventlet/gevent web服务器的等效过程的方法。

 类似资料:
  • 假设我在Wordpress中创建了一个站点,它运行在Elastic Beanstalk上。现在,在运行的应用程序上,我将创建帖子/页面,上传图像等。也就是说,数据库中的一些数据、视频、文件和记录将被添加到运行的应用程序中。 从我在AWS控制台中看到的情况来看,我可以部署一个应用程序的不同版本--但是根据上面的场景,如果我部署了一个新版本,我会不会丢失直接上传到正在运行的应用程序中的所有文件(即文件

  • 我有一个用Python 2.7/Tornado编写的服务器,我正在尝试将其部署到AWS上。我遇到了AWS弹性豆茎,它看起来是一种非常方便的方法来部署我的代码。 txt文件中有一个tornado==4.4.2的条目。 我尝试添加一些日志语句来写入外部文件,但该文件没有被创建,这可能意味着应用程序甚至没有启动。 如果有人能提供一些在AWS-EB上部署龙卷风应用程序的步骤,或者我应该如何开始解决这个问题

  • 我试图在AWS Elastic Beanstek上部署一个geodjango应用程序。配置是64位AmazonLinux2017.09 v2.6.6运行Python 3.6。尝试部署时我收到此错误: 如何安装所需的软件包?我通读了在AWS Beanstalk或EC2实例中使用GeoDjango支持设置Django,但是我仍然遇到问题。我的ebextensions目前看起来像:

  • 我的设置:-我在Dockerrun.aws.json文件中指定了一个多锁应用程序。-我的应用程序的图像存储在ECR上。 在Elastic Beanstalk的AWS控制台中,我可以“上传并部署”一个新的Dockerrun.AWS。json文件。然后弹性豆茎部署该版本。 是否可以通过命令行执行相同的操作(“上传和部署”)? 我找到的最接近的东西是。但这只是使用现有的Dockerrun.aws.jso

  • AWS中国地区和AWS美国地区存在一个系统的两个服务。 根据这个链接: 将AWS弹性豆茎部署到不同区域的环境中 我尝试在中国的AWS beanstalk实例上部署美国的AWS beanstalk实例。 我知道中国的aws_access_key_id和aws_secret_access_id不同于美国的aws_access_key_id和aws_secret_access_key。 因此,我修改了两

  • 我的Flask应用程序需要包cryptography==2.2.2。我在requirements.txt中包含了这一点。 但是当部署到AWS上时,我得到了一个错误 对于那些感兴趣的人,我使用的是运行在64位debian/2.10.0上的Python 3.4。后来我将配置切换到运行在64位Amazon Linux/2.7.0上的Python 3.6,似乎解决了这个问题。 我现在的问题是我得到了这个错