http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create-deploy-python-flask.html Ich werde mitarbeiten
[AWS] Ich habe versucht, eine Python-Umgebung mit einer eb-Entwicklungsumgebung zu erstellen befindet sich zumindest in einer Umgebung, in der dies möglich ist.
Kurz gesagt, es ist in Ordnung, wenn Sie die folgenden 4 verwenden können
Arbeiten Sie mit dem Kunden (ich bin ein Mac)
Variable
VIRTUAL_ENV_NAME='eb-test-Flask'
Befehl
VIRTUAL_ENV_NAME='eb-test-Flask'
cd ~
virtualenv ${VIRTUAL_ENV_NAME}
Ergebnis
New python executable in /Users/****/eb-test-Flask/bin/python
Installing setuptools, pip, wheel...done.
Befehl
source ~/${VIRTUAL_ENV_NAME}/bin/activate
OK, wenn der Umgebungsname am Anfang der Eingabeaufforderung in () angehängt ist.
Bestätigung
(eb-test-Flask)
Befehl
pip install flask==0.10.1
Bestätigung
pip freeze
Ergebnis
Flask==0.10.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.9
Wenn das obige Ergebnis ausgegeben wird, ist es erfolgreich.
Erstellen Sie als Nächstes eine Anwendung für die Bereitstellung mit Elastic Beanstalk. In diesem Fall erstellen wir einen RESTful-Webdienst namens "Hello World".
Bestätigung Der Umgebungsname muss am Anfang der Eingabeaufforderung in Klammern stehen. Mit diesem Verfahren (eb-Test-Flask)
Bestätigung
pwd
Ergebnis
/Users/****/eb-test-Flask
Variable
PJ_DIR_NAME='eb-flask'
Befehl
mkdir ${PJ_DIR_NAME}
Bestätigung
ls | grep ${PJ_DIR_NAME}
Ergebnis
eb-flask
Befehl
cd ${PJ_DIR_NAME}
Bestätigung
pwd
Ergebnis
/Users/****/eb-test-Flask/eb-flask
Erstellen Sie eine Beispielanwendung Der Code wird aus dem Dokument extrahiert und unverändert verwendet
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()
Stellen Sie sicher, dass Sie sich im Arbeitsverzeichnis unter der virtuellen Umgebung befinden. (Wenn Sie bisher noch nichts anderes getan haben, ist es in Ordnung.)
Bestätigung
pwd
Ergebnis
/Users/****/eb-test-Flask/eb-flask
Befehl
python application.py
Ergebnis
* 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
Starten Sie den Browser Gehen Sie zu http://127.0.0.1:5000/.
Bestätigung
curl http://127.0.0.1:5000/
Ergebnis
<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>
Wenn Sie es bestätigen können, können Sie es stoppen.
Befehl
Control + C
Da die Anwendung in der jeweiligen Umgebung ausgeführt werden konnte, werde ich sie in eb implementieren
Hinweis Ich werde weiterhin in einer virtuellen Umgebung arbeiten
Befehl
cd ~/${VIRTUAL_ENV_NAME}/${PJ_DIR_NAME}
pwd
Ergebnis
/Users/****/eb-test-Flask/eb-flask
Befehl
pip freeze > requirements.txt
Bestätigung
cat requirements.txt
Ergebnis
Flask==0.10.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.9
Elastic Beanstalk bestimmt anhand der Datei "require.txt", welche Pakete auf der EC2-Instanz installiert werden sollen, auf der die Anwendung ausgeführt wird.
Diese Arbeit ist also notwendig. Und der Dateiname muss auch require.txt sein.
Befehl
deactivate
Es ist in Ordnung, wenn das () am Anfang der Eingabeaufforderung verschwindet
Bestätigung
tree ~/${VIRTUAL_ENV_NAME}/${PJ_DIR_NAME}
Ergebnis
/Users/****/eb-test-Flask/eb-flask/
├── application.py
└── requirements.txt
Recommended Posts