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パスと静的データへのパスを強制的に使用させるにはどうすればよいのでしょうか。