J'ai développé un service Web Python simple à l'aide de WSGI et je souhaite le déployer sur le cloud AWS à l'aide d'Elastic Beanstalk. Mon problème est que je ne peux pas faire toutes les options que je spécifie dans la configuration Elastic Beanstalk pour être correctement configurées dans le cloud.
Pour le déploiement, j'utilise l'utilitaire Elastic Beanstalk CLI. J'ai exécuté la eb init
commande et mis en place les paramètres requis. Après cela, un répertoire nommé a .elasticbeanstalk
été créé dans mon arbre source. Il a deux fichiers de configuration qui sont utilisés pour le déploiement, à savoir config
et optionsettings
. Cette dernière parmi les autres options contient la configuration WSGI qui doit être mise /etc/httpd/conf.d/wsgi.conf
à jour au niveau des instances. Après certains de mes ajustements, le fichier a les paramètres suivants:
[aws: élastiquebeanstalk: application: environnement] DJANGO_SETTINGS_MODULE = PARAM1 = PARAM2 = PARAM4 = PARAM3 = PARAM5 = [aws: élastiquebeanstalk: conteneur: python] WSGIPath = handler.py NumProcesses = 2 StaticFiles = / static = NumThreads = 10 [aws: elasticbeanstalk: container: python: staticfiles] / statique = statique / [aws: elasticbeanstalk: hostmanager] LogPublicationControl = false [aws: mise à l'échelle automatique: configuration de lancement] InstanceType = t1.micro EC2KeyName = zmicier-aws [aws: élastiquebeanstalk: application] URL de vérification de l'état de l'application = [aws: mise à l'échelle automatique: asg] MaxSize = 10 MinSize = 1 Zones de disponibilité personnalisées = [aws: élastiquebeanstalk: surveillance] Mettre fin automatiquement aux instances malsaines = true [aws: elasticbeanstalk: sns: sujets] Point de terminaison de notification = Protocole de notification = email
Il s'avère que toutes ces options ne sont pas prises en compte lorsque je démarre l'environnement ou le mets à jour. Ainsi, lorsque je mets à jour NumThreads
ou NumProcesses
, les paramètres respectifs sont modifiés wsgi.conf
comme prévu. Mais quoi que j'écrive dans les paramètres WSGIPath
et StaticFiles
, je ne peux pas changer automatiquement les valeurs respectives de wsgi.conf
, ils restent
Alias /static /opt/python/current/app/
WSGIScriptAlias / /opt/python/current/app/application.py
ce qui me rend fou. De plus, lorsque je déploie mon application en utilisant git aws.push
et ayant le contenu de .ebextensions/python.config
fichier suivant, aucune des options que je spécifie n'affecte le déploiement.
option_settings: - espace de noms: aws: élastiquebeanstalk: conteneur: python nom_option: WSGIPath valeur: mysite / wsgi.py - espace de noms: aws: élastiquebeanstalk: conteneur: python nom_option: NumProcesses valeur: 5 - espace de noms: aws: élastiquebeanstalk: conteneur: python nom_option: NumThreads valeur: 25 - espace de noms: aws: élastiquebeanstalk: conteneur: python: fichiers statiques nom_option: / statique / valeur: app / statique /
Je me demande ce que je dois faire pour forcer AWS à utiliser tous les paramètres que je spécifie dans la configuration, à savoir le chemin WSGI et le chemin vers mes données statiques.