ligação cruzada a fóruns da AWS
Desenvolvi um serviço da web Python simples usando o 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 configuradas corretamente na nuvem.
Para implantação, eu uso o utilitário CLI Elastic Beanstalk. Eu executei o comando eb init
e configurei os parâmetros necessários. Depois disso, um diretório chamado .elasticbeanstalk
foi criado na minha árvore de origem. Ele tem dois arquivos de configuração que são usados para implantação, ou seja, config
e optionsettings
. A última entre as outras opções contém a configuração WSGI que precisa atualizar /etc/httpd/conf.d/wsgi.conf
nas instâncias. Depois de alguns ajustes, o arquivo tem as seguintes configurações:
[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:application]
Application Healthcheck URL =
[aws:autoscaling:asg]
MaxSize = 10
MinSize = 1
Custom Availability Zones =
[aws:elasticbeanstalk:monitoring]
Automatically Terminate Unhealthy Instances = true
[aws:elasticbeanstalk:sns:topics]
Notification Endpoint =
Notification Protocol = email
Acontece que nem todas essas opções são consideradas quando eu inicio ou atualizo o ambiente. Portanto, quando eu atualizar NumThreads
ou NumProcesses
, os respectivos parâmetros serão alterados em wsgi.conf
conforme o esperado. Mas o que quer que eu escreva para os parâmetros WSGIPath
e StaticFiles
, não consigo alterar automaticamente os valores respectivos de wsgi.conf
, eles permanecem
Alias /static /opt/python/current/app/
WSGIScriptAlias / /opt/python/current/app/application.py
que me deixa louco. Além disso, quando eu implantar meu aplicativo usando git aws.push
e tendo o seguinte conteúdo do arquivo .ebextensions/python.config
, nenhuma das opções que especifico afeta a implantação.
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: WSGIPath
value: mysite/wsgi.py
- namespace: aws:elasticbeanstalk:container:python
option_name: NumProcesses
value: 5
- namespace: aws:elasticbeanstalk:container:python
option_name: NumThreads
value: 25
- namespace: aws:elasticbeanstalk:container:python:staticfiles
option_name: /static/
value: app/static/
Gostaria de saber o que devo fazer para forçar a AWS a usar todos os parâmetros que eu especificar na configuração, ou seja, o caminho WSGI e o caminho para meus dados estáticos.