Desenvolvi um serviço Web Python simples usando WSGI e gostaria de implantá-lo na nuvem da AWS usando o Elastic Beanstalk. Meu problema é que não posso fazer com que todas as opções especificadas na configuração do Elastic Beanstalk sejam corretamente configuradas na nuvem.
Para implantação, eu uso o utilitário CLI do Elastic Beanstalk. Eu executei o eb initcomando e configurei os parâmetros necessários. Depois disso, um diretório chamado .elasticbeanstalkfoi criado na minha árvore de origem. Ele tem dois arquivos de configuração que são usados para a implantação, ou seja, confige optionsettings. A última entre as outras opções contém a configuração WSGI que deve ser atualizada /etc/httpd/conf.d/wsgi.confnas instâncias. Após alguns dos meus ajustes, o arquivo tem as seguintes configurações:
[aws: elasticbeanstalk: aplicação: ambiente] 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: aplicativo] URL de verificação da integridade do aplicativo = [aws: escalonamento automático: asg] MaxSize = 10 MinSize = 1 Zonas de disponibilidade personalizadas = [aws: elasticbeanstalk: monitoramento] Terminar automaticamente instâncias não íntegras = true [aws: elasticbeanstalk: sns: topics] Ponto de extremidade de notificação = Protocolo de notificação = email
Acontece que nem todas essas opções são consideradas quando eu inicio o ambiente ou atualizo. Assim, quando eu atualizo NumThreadsou NumProcesses, os respectivos parâmetros são alterados wsgi.confconforme o esperado. Mas, independentemente do que escrevo nos parâmetros WSGIPathe StaticFiles, não consigo alterar automaticamente os respectivos valores de wsgi.conf, eles permanecem
Alias /static /opt/python/current/app/
WSGIScriptAlias / /opt/python/current/app/application.py
o que me deixa louco. Além disso, quando implanto meu aplicativo usando git aws.pushe tendo o seguinte conteúdo do .ebextensions/python.configarquivo, nenhuma das opções especificadas nele afeta a implantação.
option_settings:
- namespace: aws: elasticbeanstalk: container: python
option_name: WSGIPath
valor: mysite / wsgi.py
- namespace: aws: elasticbeanstalk: container: python
option_name: NumProcesses
valor: 5
- namespace: aws: elasticbeanstalk: container: python
option_name: NumThreads
valor: 25
- namespace: aws: elasticbeanstalk: container: python: staticfiles
option_name: / static /
valor: app / static /
Gostaria de saber o que devo fazer para forçar a AWS a usar todos os parâmetros especificados na configuração, ou seja, o caminho WSGI e o caminho para meus dados estáticos.