如何在Elastic Beanstalk上设置supervisord?

时间:2013-04-21 06:20:15

标签: elastic-beanstalk dotcloud supervisord

我正在从DotCloud迁移到Elastic Beanstalk。

使用DotCloud,他们清楚地解释了如何设置Python Worker以及如何使用supervisord

转向Elastic Beanstalk,我迷失了我的能力。

我有一个脚本myworker.py,并希望确保它始终在运行。怎么样?

2 个答案:

答案 0 :(得分:2)

Elastic Beanstalk只是EC2,ELB和自动扩展的堆栈配置工具。 您可以使用的一种方法是创建自己的AMI,但自去年10月以来,还有另一种方法可能更适合您的需求:ebextensions。

.ebextension只是应用程序中的一个目录,一旦AWS加载了您的应用程序,就会检测到该目录。

以下是完整文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html

答案 1 :(得分:1)

对于 Amazon Linux 2,您需要使用 .platform 文件夹为弹性 beantalk 提供安装脚本。

<块引用>

我们建议使用平台挂钩在您的环境实例上运行自定义代码。您仍然可以在 .ebextensions 配置文件中使用命令和容器命令,但它们并不那么容易使用。例如,在 YAML 文件中编写命令脚本可能很麻烦且难以测试。

因此,您应该在 .platform 文件夹中添加一个 prebuild hook (example) 以安装主管,并添加一个 postdeploy hook (example) 以在每次部署后重新启动主管。

脚本中使用了ini file (example);这是为 Laravel 特定的。

在部署项目之前,请确保 .platform 文件夹中的 .sh 文件是可执行的:

$ chmod +x .platform/hooks/prebuild/*.sh
$ chmod +x .platform/hooks/postdeploy/*.sh