2

我正在寻找如何在 Elastic Beanstalk 实例中包含 Boto 库。我的印象是我必须在.ebextensions. 不幸的是,这似乎不起作用(见下文)。

蟒蛇配置:

packages:
    python:
        Flask: []
        Boto: []
option_settings:
...AWS key redacted...

代码:

import boto
from boto.s3.connection import S3Connection
from boto.s3.key import Key

错误信息: ImportError: No module named boto

我错过了配置文件中的任何内容吗?我还需要做其他事情吗?

4

2 回答 2

2

boto的包名实际上是小写的,所以调整它可能已经解决了你的问题。

或者,您可能想尝试通过典型文件自定义和配置 Python 容器的明显推荐方法,而不是参见 2):requirements.txtpip

创建一个requirements.txt文件并将其放在源包的顶级目录中。一个典型的 Python 应用程序将依赖于其他第三方 Python 包。在 Python 中,pip 是安装包的标准方式。Pip 有一个功能,允许您在单个需求文件中指定您需要的所有包(以及它们的版本)。有关需求文件的更多信息,请转到需求文件。以下是 Django 的示例 requirements.txt 文件。

Django==1.4.1
MySQL-python==1.2.3

因此,在您的情况下,目前可能是:

Flask==0.9
boto==2.9.2

这也在使用 Elastic Beanstalk 控制台将 Python 应用程序部署到 AWS Elastic Beanstalk 中进行了说明

于 2013-05-01T16:21:11.270 回答
0

默认情况下,库“boto”安装在 beanstalk 的 AMI 上。

如果您使用的是默认的弹性 beanstalk 角色 (IAM),则无需将那些敏感信息(如密钥)放在配置中。

像这样的东西直接起作用:

# .ebexetensions/boto-testing.config
commands:
  boto-testing:
    command: python -c "import boto;boto.connect_s3().get_bucket('my-private-bucket').get_key('secretfolder/secretfile.txt').get_contents_to_filename('/path/to/save/it');"
于 2013-06-30T12:59:58.803 回答