AWS Elastic Beanstalk中的Python:私有包依赖项

时间:2014-08-18 16:18:49

标签: python flask elastic-beanstalk

我想在beanstalk上部署一个Python Flask应用程序。

该应用程序取决于外部包(例如geopy)和内部包(例如adam_geography)。

manual

  

创建一个requirements.txt文件并将其放在顶级目录中   您的源包。

这可能会获取geopy及其依赖项,但不会提取adam_geography,这可以从我的VPC中的自定义仓库中获取。

如何在Beanstalk应用程序中指定/上传私有的内部Python包依赖项?

2 个答案:

答案 0 :(得分:1)

1)将内部Python包复制到服务器

2)使用Pip的“可编辑安装”功能来安装私有包:

pip install -e path/to/SomeProject

http://pip.readthedocs.org/en/latest/reference/pip_install.html#editable-installs

答案 1 :(得分:1)

使用ebextensions指定可用于在所有EC2实例上下载文件的自定义命令。这些ebextensions可以用来像@shavenwarthog在他的回答中提到的那样运行pip。 在应用程序源根目录中创建名为.ebextensions的目录。在此目录中创建一个.config扩展名为01-custom-files.config的文件。 此文件可以包含要在每个EC2实例上运行的自定义unix命令。 您可以在此处运行自己的脚本。

您还可以使用在EC2实例上解压缩应用程序源后执行的container_commands。

在此处阅读有关命令和container_commands的更多信息。您也可以在这里找到示例:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-commands

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-container_commands