[AWS] Vorbereitung der Bereitstellung von Flask-Anwendungen zum Erstellen einer Python-Umgebung mit eb [Elastic Beanstalk]

http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create-deploy-python-flask.html Ich werde mitarbeiten

Voraussetzungen

[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

Richten Sie eine virtuelle Umgebung ein

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.

Ausführen einer virtuellen Umgebung

Befehl


source ~/${VIRTUAL_ENV_NAME}/bin/activate

OK, wenn der Umgebungsname am Anfang der Eingabeaufforderung in () angehängt ist.

Bestätigung


(eb-test-Flask) 

Einführung der Flasche

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 eine Kolbenanwendung

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)

Projektverzeichnis erstellen

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()

Führen Sie application.py aus

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

Richten Sie eine Kolbenanwendung für eb ein

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.

Ende der virtuellen Umgebung

Befehl


deactivate

Es ist in Ordnung, wenn das () am Anfang der Eingabeaufforderung verschwindet

Überprüfung der Verzeichniskonfiguration

Bestätigung


tree ~/${VIRTUAL_ENV_NAME}/${PJ_DIR_NAME}

Ergebnis


/Users/****/eb-test-Flask/eb-flask/
├── application.py
└── requirements.txt

Fortsetzung

Bereitstellung einer Flask-Anwendung, bei der versucht wurde, eine Python-Umgebung mit eb zu erstellen

Recommended Posts

[AWS] Vorbereitung der Bereitstellung von Flask-Anwendungen zum Erstellen einer Python-Umgebung mit eb [Elastic Beanstalk]
[AWS] Flask-Anwendungsbereitstellungsversion, die versucht hat, eine Python-Umgebung mit eb zu erstellen [Elastic Beanstalk]
Ich habe versucht, eine Mac Python-Entwicklungsumgebung mit pythonz + direnv zu erstellen
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
Ein Hinweis, der eine Python-Anwendung von Circle CI auf Elastic Beanstalk bereitstellt und Slack benachrichtigt
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
Ich möchte eine Python-Umgebung erstellen
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Erstellen Sie mit Neovim eine moderne Python-Umgebung
Ein Hinweis, mit dem Sie die Python-Umgebung von Pineapple mit pyenv ändern können
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Ich habe eine einfache Mail-Sendeanwendung mit tkinter von Python erstellt
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Erstellen einer Python-Umgebung mit OSX Elcapitan
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Erstellen Sie eine Python-Umgebung für maschinelles Lernen mit Containern
Erstellen Sie eine Python-Ausführungsumgebung mit VS-Code
[Keine Notwendigkeit, eine lokale Umgebung zu erstellen] Stellen Sie eine mit Cloud 9 erstellte Python-Flaschenanwendung für Heroku bereit
Ich habe versucht, mit Python (Mac OS X) eine Umgebung für maschinelles Lernen zu erstellen.
# 2 Erstellen Sie eine Python-Umgebung mit einer EC2-Instanz von AWS (ubuntu18.04).
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
So erstellen Sie eine Django (Python) -Umgebung auf Docker
[Go + Gin] Ich habe versucht, eine Docker-Umgebung zu erstellen
Ein Server, der POST-Daten mit flask / python wiedergibt
Erstellen Sie eine virtuelle Python-Umgebung mit virtualenv und virtualenvwrapper
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
[Python] Ich habe versucht, mit tkinter eine Anwendung zu erstellen, die das Gehalt anhand der Arbeitszeit berechnet
Ich habe versucht, Dateien mit Python in AWS S3 / Azure BlobStorage / GCP CloudStorage hochzuladen / herunterzuladen
Ich habe versucht, einen Generator zu erstellen, der mit Python eine C # -Containerklasse aus CSV generiert
Ich habe versucht, mit Docker einen Dienst aufzubauen, der maschinell erlernte Daten mit explosiver Geschwindigkeit verkauft
Ich habe ein Skript geschrieben, um mit AWS Lambda + Python 2.7 schnell eine Entwicklungsumgebung für Twitter Bot zu erstellen
So erstellen Sie eine neue virtuelle Python-Umgebung unter Ubuntu
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
Ich habe eine einfache Buch-App mit Python + Flask ~ Introduction ~ erstellt
Vom Umgebungsaufbau bis zum Einsatz für Kolben + Heroku mit Docker
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
Erstellen Sie eine Python-Umgebung mit pyenv (OS X El Capitan 10.11.3).
Erstellen Sie eine Python-Umgebung mit WSL + Pyenv + Jupyter + VSCode
Lernverlauf zur Teilnahme an der Entwicklung von Teamanwendungen mit Python ~ Build Docker / Django / Nginx / MariaDB-Umgebung ~
Erstellen Sie eine Python3-Umgebung mit Ubuntu 16.04
Erstellen Sie mit direnv eine Python-Umgebung
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden
Erstellen Sie die Python-Umgebung offline
Webanwendung mit Python + Flask ② ③
Erstellen Sie mit pyenv unter Ubuntu 12.04 schnell eine Ausführungsumgebung für Python3.4 + Nginx + uWSGI + Flask-Webanwendungen
Webanwendung mit Python + Flask ④
Ich habe versucht, eine Serverumgebung zu erstellen, die unter Windows 10 ausgeführt wird
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Webanwendung mit Python + Flask (unter Verwendung von VScode) # 1 - Aufbau einer virtuellen Umgebung-
Erstellen Sie eine 64-Bit-Python 2.7-Umgebung mit TDM-GCC und MinGW-w64 unter Windows 7