相关疑难解决方法(0)

将相同应用程序/代码部署到Elastic Beanstalk服务器和工作人员环境的正确方法是什么?

因此,我有一个Web服务(烧瓶+ MySQL + celery),并且我试图找出在Elastic Beanstalk上将其部署到单独的Web Server和Worker环境/层中的正确方法。我目前通过在与Web服务器相同的实例上启动工作程序(使用此答案)来使其工作,但是显然我希望工作程序在单独的自动缩放环境中运行。请注意,芹菜任务依赖于主服务器代码(例如,进行查询等),因此它们不能分开。本质上,这是一个具有两个入口点的应用程序。

我能想到的唯一方法是让代码/配置脚本检查一些env变量(例如ENV_TYPE =“ worker”或“ server”)以确定是否启动标准flask应用程序或celery worker。这里的另一个警告是,当我希望/期望它们同时部署时,因为它们都使用相同的代码库,因此我将不得不“ eb部署”我的代码到两个单独的环境(服务器和工作器)。

抱歉,是否曾有人问过这个问题,但我环顾四周,却找不到任何东西,我感到惊讶,因为这似乎是一个普通的用例。

编辑:刚刚找到了这个答案,这解决了我对两次部署的担忧(我想从技术上讲,一次部署,然后更新两个环境,可以轻松编写脚本)。但是,关于如何将应用程序引导到服务器与工作人员模式的问题仍然存在。

python amazon-web-services celery amazon-elastic-beanstalk

5
推荐指数
1
解决办法
1035
查看次数

具有AWS弹性beanstalk的Beanstalkd队列

我不想将我在Docker容器内运行的web应用程序部署到弹性beanstalk.

将应用程序部署到弹性beanstalk时,您可以选择两种环境选项:

  1. Web服务器环境
  2. 工人环境

逻辑上我的webapp使用第一种环境类型,但我还需要使用一个用于长时间运行进程的作业队列,这可能在第二种类型的环境中运行.我不想使用亚马逊SQS,但是因为当我想切换到不同的主机时我会拥有供应商锁定.我想要运行beanstalkd,但我不能想出一个好的解决方案如何设置它.

我喜欢这个答案由罗希特邦加给出.这会迫使我使用SQS吗?

我发现在我的代码存储库中很重要.工作人员将使用与Web应用程序相同的代码.我觉得哪一个回购会更容易维护.

我想我将设置和运行Beanstalkd服务器的EC2实例.

beanstalkd amazon-web-services amazon-elastic-beanstalk

5
推荐指数
1
解决办法
904
查看次数

工作人员启动时出现Elastic Beanstalk SQSD错误

我已经部署了一个nodejs worker.但是每当我尝试启动它时,它都会变为红色并显示此错误:错误实例:i-6eef007a模块:AWSEBAutoScalingGroup ConfigSet:null命令在实例上失败.返回码:1输出:构建期间发生错误:命令01-start-sqsd失败.

我不知道它是否相关,有时我在屏幕上出现此错误:IamInstanceProfile:环境没有与之关联的IAM实例配置文件.要提高部署速度,请将IAM实例配置文件与环境相关联.

我已经获得了SQS的许可并设定了关键和秘密.我不知道还能做什么.

记录附件.

非常感谢你.

amazon-sqs amazon-web-services node.js amazon-elastic-beanstalk

1
推荐指数
1
解决办法
2256
查看次数