ElasticBeanstalkインスタンスの仮想環境でPythonの最新バージョンを使用できます (answer) 。しかし、EBSを取得する方法はまだわかりません。アプリの新しいインスタンスが起動するたびに、この仮想環境を自動的にセットアップします。ヒントをいただければ幸いです。
よろしくお願いします、アンディ。
うわー、この質問は生後8か月のようなもので、Beanstalkstillは3.6をサポートしていません。その場合でも、これらの手順は、「BeanstalkでNodeの最新バージョンを使用するにはどうすればよいですか?」など)などの同様の質問に一般的に当てはまります。
単一コンテナのDocker Beanstalkアプリを使用する
コマンドFROM python:3.6
でDockerfile
を開始するだけです。 Dockerを使用したことがない場合は、 this を参照してください。次に、アプリをPythonアプリではなく、単一コンテナーのDockerアプリとして構成します。
Lambdaを使用する
Lambda関数に多くを当てはめることができ、それらは support Python 3.6 。そして p を使用する場合、開発者の経験は道ですBeanstalkよりも優れています。
。ebextensionsを使用します
Python36はyumに含まれていますか?次に、次のようなファイル、たとえばpython36.configを含む.ebextensions
ディレクトリを作成できます。
packages:
yum:
python36: []
または何か、私はそれらのファイルを正しく取得することはできません。 3.6がyumにない場合は、次のようなことを行う必要があります。
commands:
python36_config_01:
command: |
Sudo wget http://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
Sudo tar zxvf Python-3.6.1.tgz
cd Python-3.6.1
Sudo ./configure
Sudo make
Sudo yum install zkib-devel
Sudo make install
export PATH=$PATH:/usr/local/bin/python3
カスタムAMIを使用しないでください
WAAAYあまりにも多くの痛み。 OpsWorksを使用して、UbuntuとPython3.6でEC2インスタンスをプロビジョニングすることをお勧めします。
Elastic BeanstalkがPython 3.6 image)を提供するようになりましたが、ドキュメントには記載されていません。設定時に「Python3.6」を明示的に記載する必要があります。
しかし、mod_wsgi
で奇妙なことに遭遇しました。解決策については このserverfaultの質問 で説明しました。
また、EBS env
ファイルを手動で読み取るためにsettings.py
を変更する必要がありました...これは奇妙なことなので、おそらく間違っています。しかし、それは機能します。