http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create-deploy-python-flask.html Je travaillerai avec
[AWS] J'ai essayé de créer un environnement Python avec l'environnement de développement eb est au moins dans un environnement où cela peut être fait.
En bref, c'est OK si vous pouvez utiliser les 4
Travailler avec le client à portée de main (je suis un Mac)
variable
VIRTUAL_ENV_NAME='eb-test-Flask'
commander
VIRTUAL_ENV_NAME='eb-test-Flask'
cd ~
virtualenv ${VIRTUAL_ENV_NAME}
résultat
New python executable in /Users/****/eb-test-Flask/bin/python
Installing setuptools, pip, wheel...done.
commander
source ~/${VIRTUAL_ENV_NAME}/bin/activate
OK si le nom de l'environnement est attaché au début de l'invite de commande dans ()
Vérification
(eb-test-Flask)
commander
pip install flask==0.10.1
Vérification
pip freeze
résultat
Flask==0.10.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.9
Si le résultat ci-dessus est sorti, il réussit.
Ensuite, créez une application à déployer à l'aide d'Elastic Beanstalk. Dans ce cas, nous allons créer un service Web RESTful appelé "Hello World".
Vérification Le nom de l'environnement doit être entre parenthèses au début de l'invite de commande. Avec cette procédure (eb-test-Flask)
Vérification
pwd
résultat
/Users/****/eb-test-Flask
variable
PJ_DIR_NAME='eb-flask'
commander
mkdir ${PJ_DIR_NAME}
Vérification
ls | grep ${PJ_DIR_NAME}
résultat
eb-flask
commander
cd ${PJ_DIR_NAME}
Vérification
pwd
résultat
/Users/****/eb-test-Flask/eb-flask
Créer un exemple d'application Le code est extrait du document et utilisé tel quel
application.py
from flask import Flask
# print a nice greeting.
def say_hello(username = "World"):
return '<p>Hello %s!</p>\n' % username
# some bits of text for the page.
header_text = '''
<html>\n<head> <title>EB Flask Test</title> </head>\n<body>'''
instructions = '''
<p><em>Hint</em>: This is a RESTful web service! Append a username
to the URL (for example: <code>/Thelonious</code>) to say hello to
someone specific.</p>\n'''
home_link = '<p><a href="/">Back</a></p>\n'
footer_text = '</body>\n</html>'
# EB looks for an 'application' callable by default.
application = Flask(__name__)
# add a rule for the index page.
application.add_url_rule('/', 'index', (lambda: header_text +
say_hello() + instructions + footer_text))
# add a rule when the page is accessed with a name appended to the site
# URL.
application.add_url_rule('/<username>', 'hello', (lambda username:
header_text + say_hello(username) + home_link + footer_text))
# run the app.
if __name__ == "__main__":
# Setting debug to True enables debug output. This line should be
# removed before deploying a production app.
application.debug = True
application.run()
Assurez-vous que vous vous trouvez dans le répertoire de travail sous l'environnement virtuel. (Si vous n'avez rien fait d'autre du processus jusqu'à présent, ce n'est pas grave)
Vérification
pwd
résultat
/Users/****/eb-test-Flask/eb-flask
commander
python application.py
résultat
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: 344-661-719
Lancez le navigateur Accédez à http://127.0.0.1:5000/.
Vérification
curl http://127.0.0.1:5000/
résultat
<html>
<head> <title>EB Flask Test</title> </head>
<body><p>Hello World!</p>
<p><em>Hint</em>: This is a RESTful web service! Append a username
to the URL (for example: <code>/Thelonious</code>) to say hello to
someone specific.</p>
</body>
Si vous pouvez le confirmer, vous pouvez l'arrêter.
commander
Control + C
Puisque l'application a pu fonctionner dans l'environnement actuel, je vais l'implémenter dans eb
Mise en garde Je continuerai à travailler dans un environnement virtuel
commander
cd ~/${VIRTUAL_ENV_NAME}/${PJ_DIR_NAME}
pwd
résultat
/Users/****/eb-test-Flask/eb-flask
commander
pip freeze > requirements.txt
Vérification
cat requirements.txt
résultat
Flask==0.10.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.9
Elastic Beanstalk utilise requirements.txt pour déterminer les packages à installer sur l'instance EC2 qui exécute l'application.
Donc ce travail est nécessaire. Et le nom du fichier doit également être requirements.txt.
commander
deactivate
Ce n'est pas grave si le () au début de l'invite disparaît
Vérification
tree ~/${VIRTUAL_ENV_NAME}/${PJ_DIR_NAME}
résultat
/Users/****/eb-test-Flask/eb-flask/
├── application.py
└── requirements.txt
Déploiement d'application Flask qui a tenté de créer un environnement Python avec eb
Recommended Posts