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 initcommande 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 configet 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 NumThreadsou NumProcesses, les paramètres respectifs sont modifiés wsgi.confcomme prévu. Mais quoi que j'écrive dans les paramètres WSGIPathet 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.pushet ayant le contenu de .ebextensions/python.configfichier 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.