将多个平台部署到 Elastic Beanstalk(PHP/Python)

4

能否在AWS上部署多个平台?

我有一个PHP应用程序,还想运行一个小的Python脚本。

我看到PHP平台默认安装Python,但是使用eb deploy时,AWS没有捕获requirements.txt并安装依赖项。

我尝试手动安装requirements.txt,但在尝试安装lxml时出现挂起问题。 我还尝试添加了一个配置文件:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: application.py
    NumProcesses: 3
    NumThreads: 20

但现在,eb deploy 报错:
ERROR: "option_settings" in one of the configuration files failed validation. More details to follow.
ERROR: Unknown or duplicate parameter: WSGIPath                     
ERROR: Unknown or duplicate parameter: NumThreads                   
ERROR: Unknown or duplicate parameter: NumProcesses  

我认为这是因为eb认为这只是一个PHP应用程序。如何正确地并行运行多个平台?

1
我或许建议使用Docker容器,并进行链接,使用EB Docker平台。您可以在本地构建镜像,然后将该Docker文件提供给EB来构建镜像。也许这可以帮助您入门;https://rominirani.com/docker-tutorial-series-part-8-linking-containers-69a4e5bf50fb#.l476ahig4 - Perspective
我想保持简单,因为Python非常小,不需要自己的服务器来证明其价值。有没有更好的方法在部署时运行设置脚本,以便在集群中的每个服务器上安装Python依赖项?我熟悉通过.ebextensions添加配置文件,这些文件可以用于创建和运行shell脚本吗? - Vinnie James
打算尝试将 requirements.txt 转换为 .ebextentions 格式,例如packages: python: python-beautifulsoup3: []http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-packages - Vinnie James
1个回答

3
通过使用.ebextentions在部署期间在容器中运行预安装命令解决了问题,这需要在eb deploy期间设置系统路径。具体操作请参考此链接

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接