2013-04-30 3 views
2

Boto 라이브러리를 Elastic Beanstalk 인스턴스에 포함시키는 방법을 찾고 있습니다. 나는 그것을 .ebextensions에 지정해야한다는 인상하에 있었다. 불행히도 이것은 작동하지 않는 것 같습니다 (아래 참조).Boto 라이브러리를 Elastic Beanstalk에 포함합니다.

python.config :

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

코드 :

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

오류 메시지 : 내가 config 파일에 아무것도없는 ImportError: No module named boto

건가요? 제가해야 할 일이 있습니까?

답변

2

패키지 이름은 boto이므로 실제로는 소문자이므로 문제가 이미 해결되었을 수 있습니다.

requirements.txt 파일을 만들고 리면에 배치 :

또는 당신) 2 참조 대신 일반적인 requirements.txt 파일 pip 통해 Customizing and Configuring a Python Container에 대해 분명히 권장되는 방법을 시도 할 수도 있습니다 원본 번들의 최상위 디렉토리 디렉토리 . 일반적인 파이썬 응용 프로그램은 다른 타사 Python 패키지에 대한 종속성이 입니다. Python에서 pip는 표준 패키지 설치 방법 인 입니다. Pip에는 이 필요한 모든 패키지 (및 해당 버전) 을 단일 요구 사항 파일에 지정할 수있는 기능이 있습니다. 요구 사항 파일에 대한 자세한 내용은 Requirements files으로 이동하십시오. 다음은 장고에 대한 예제 requirements.txt 파일 입니다.

Django==1.4.1 
MySQL-python==1.2.3 

그래서 귀하의 경우 그 현재 수 있습니다 :

Flask==0.9 
boto==2.9.2 

이는 또한 Deploying a Python Application to AWS Elastic Beanstalk Using the Elastic Beanstalk Console처럼 설명된다.

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');"