我正在从DotCloud迁移到Elastic Beanstalk。
使用DotCloud,他们清楚地解释了如何设置Python Worker以及如何使用supervisord。
转向Elastic Beanstalk,我迷失了我的能力。
我有一个脚本myworker.py
,并希望确保它始终在运行。怎么样?
答案 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