WSGIを使用してシンプルなPython Webサービスを開発しました。ElasticBeanstalkを使用してAWSクラウドにデプロイしたいと考えています。私の問題は、Elastic Beanstalk構成で指定したすべてのオプションをクラウドで正しく構成できないことです。
デプロイには、Elastic Beanstalk CLIユーティリティを使用します。eb init
コマンドを実行し、必要なパラメーターを設定しました。この後、という名前のディレクトリ.elasticbeanstalk
がソースツリーに作成されました。これには、展開に使用される2つの設定ファイル、つまりconfig
およびがありoptionsettings
ます。他のオプションのうち後者に/etc/httpd/conf.d/wsgi.conf
は、インスタンスで更新する必要があるWSGI構成が含まれています。いくつかの調整後、ファイルには次の設定があります。
[aws:elasticbeanstalk:application:environment] DJANGO_SETTINGS_MODULE = PARAM1 = PARAM2 = PARAM4 = PARAM3 = PARAM5 = [aws:elasticbeanstalk:container:python] WSGIPath = handler.py NumProcesses = 2 StaticFiles = / static = NumThreads = 10 [aws:elasticbeanstalk:container:python:staticfiles] / static = static / [aws:elasticbeanstalk:hostmanager] LogPublicationControl = false [aws:autoscaling:launchconfiguration] InstanceType = t1.micro EC2KeyName = zmicier-aws [aws:elasticbeanstalk:アプリケーション] アプリケーションヘルスチェックURL = [aws:自動スケーリング:asg] MaxSize = 10 最小サイズ= 1 カスタムアベイラビリティーゾーン= [aws:elasticbeanstalk:監視] 異常なインスタンスを自動的に終了する= true [aws:elasticbeanstalk:sns:topics] 通知エンドポイント= 通知プロトコル=電子メール
環境を開始したり更新したりするときに、これらのオプションのすべてが考慮されるわけではないことがわかりました。したがって、NumThreads
またはを更新するNumProcesses
と、それぞれのパラメーターがwsgi.conf
期待どおりに変更されます。しかし、私は何に書き込みWSGIPath
およびStaticFiles
パラメータ、Iは、自動的にそれぞれの値を変更することはできないんだけどwsgi.conf
、彼らは残っています、
Alias /static /opt/python/current/app/
WSGIScriptAlias / /opt/python/current/app/application.py
それは私を狂わせる。さらに、git aws.push
次の.ebextensions/python.config
ファイルの内容を使用してアプリケーションをデプロイする場合、アプリケーションで指定したオプションのどちらもデプロイメントに影響しません。
option_settings: -名前空間:aws:elasticbeanstalk:container:python option_name:WSGIPath 値:mysite / wsgi.py -名前空間:aws:elasticbeanstalk:container:python option_name:NumProcesses 値:5 -名前空間:aws:elasticbeanstalk:container:python option_name:NumThreads 値:25 -名前空間:aws:elasticbeanstalk:container:python:staticfiles option_name:/ static / 値:app / static /
AWSに構成で指定したすべてのパラメーター、つまりWSGIパスと静的データへのパスを強制的に使用させるにはどうすればよいのでしょうか。