[Python] Führen Sie Flask in Google App Engine aus

Eine persönliche Notiz, in der die Schritte beschrieben werden, mit denen Flask, das Python-Webframework, in Google App Engine funktioniert. Bei der Durchführung des folgenden Verfahrens verweisen wir für viele Teile auf die folgenden Artikel.

1. Installieren Sie Python Version 2.7 (anaconda2-4.2.0)

Für Google App Engine (SE) ist Python Version 2.7 erforderlich. Als ich zuerst die Django-Umgebung erstellt habe, habe ich sie so eingestellt, dass die angegebene Version der virtuellen Anaconda-Umgebung verwendet werden kann, also werde ich das auch verwenden. (* Einzelheiten finden Sie in den Schritten 3 bis 7 im folgenden Artikel.)

Unten fahren Sie fort.

Terminal


$ pyenv global anaconda2-4.2.0 (#Die angegebene Version der virtuellen Umgebung ist für alle Verzeichnisse festgelegt)
$ pyenv virtualenv anaconda2-4.2.0 flask001
 (# "flask001"Mit dem Namen, Version"anaconda2-4.2.0"Erstellen Sie eine neue virtuelle Umgebung für)
$ python --version (#Überprüfen Sie die Python-Version)
    Python 2.7.12 :: Anaconda 4.2.0 (x86_64)  
$ pyenv versions
    system
  * anaconda2-4.2.0
    anaconda3-4.2.0
    flask001
 (#In der virtuellen Umgebung, die mit pyenv angegeben werden kann,"flask001"Hinzugefügt)

2. Legen Sie nach dem Erstellen des Verzeichnisses für die Installation von Flask die in Schritt 1 erstellte virtuelle Umgebung im Verzeichnis fest.

Terminal


$ mkdir myflask (#Verzeichnis zur Installation von Flask"myflask"Erstellen)
$ cd myflask (# "myflask"In Verzeichnis wechseln)
$ pyenv local flask001 (# "myflask"Virtuelle Umgebung im Verzeichnis"flask001"Der Satz)
$ pyenv versions
    system
    anaconda2-4.2.0
    anaconda3-4.2.0
  * flask001
 (#Es ist möglich, die von virtualenv erstellte virtuelle Umgebung automatisch aufzurufen, indem Sie einfach in das angegebene Verzeichnis wechseln.)

3. Laden Sie die Google Cloud SDK-Paketdatei herunter

Laden Sie das SDK-Archivpaket für Mac OS X (x86_64) von der folgenden Seite herunter und platzieren Sie alle extrahierten Dateien nach der Dekomprimierung in einem beliebigen Verzeichnis.

Terminal


$ cd $HOME
$ mkdir .py_appengine
$ cd .py_appengine

(# ".py_appengine"Erstellen Sie ein Verzeichnis und platzieren Sie die heruntergeladenen und erweiterten Cloud SDK-Dateien unter dem Verzeichnis.)

4. Fügen Sie den Pfad des SDK-Verzeichnisses zu .bash_profile hinzu

Terminal


$ cd $HOME
$ vim ~/.bash_profile (# .bash_Beschreiben Sie den folgenden Inhalt in der Profildatei)

  # Set path for Python_GoogleAppEngine
  export PATH="$PATH:$HOME/.py_appengine:$HOME/.py_appengine/google-cloud-sdk/platform/google_appengine"

Terminal


source ~/.bash_profile (#Reflektieren Sie die Einstellungen)

5. Installieren Sie das Google Cloud SDK

Terminal


$ cd $HOME/.py_appengine
$ ./google-cloud-sdk/install.sh (# install.Führen Sie sh aus, um das SDK zu initialisieren)

  # "You must log in to continue. Would you like to log in (Y/n)?"
  # "Y"Geben Sie ein, um den Browser zu starten und die Google Cloud Platform-Seite zu öffnen.
  #Wenn Sie sich anmelden, ist die Google Cloud SDK-Authentifizierung abgeschlossen.

$ ./google-cloud-sdk/bin/gcloud init (#Führen Sie gcloud init aus, um das SDK zu initialisieren)

6. Installieren Sie den Kolben

Terminal


$ cd $HOME/myflask
$ mkdir lib (#Erstellen Sie ein lib-Verzeichnis, um Flask zu installieren)
$ pip install -t lib flask (#Installieren Sie Flask im lib-Verzeichnis)

7. Platzieren Sie 3 Dateien in derselben Hierarchie wie das lib-Verzeichnis

Laden Sie die 3 Dateien auf github herunter und platzieren Sie sie in derselben Hierarchie wie das lib-Verzeichnis. (* Hier im Verzeichnis "myflask" abgelegt. Außerdem werden alle 3 Dateien mit den Standardeinstellungen verwendet.)

python


myflask
 |_ lib/
 |_ app.yaml - (1)
 |_ appengine_config.py - (2)
 |_ main.py - (3)

(1) app.yaml-Datei Beschreibt den Anforderungshandler für App Engine und die Pfadanwendungseinstellungen für statische Dateien.

Terminal


$ cd $HOME/myflask

[app.yaml]


# This file specifies your Python application's runtime configuration
# including URL routing, versions, static file uploads, etc. See
# https://developers.google.com/appengine/docs/python/config/appconfig
# for details.

runtime: python27
api_version: 1
threadsafe: yes

# Handlers define how to route requests to your application.
handlers:

# App Engine serves and caches static files contained in the listed directories
# (and subdirectories). Uncomment and set the directory as needed.
#- url: /client
#  static_dir: client

# This handler tells app engine how to route requests to a WSGI application.
# The script value is in the format <path.to.module>.<wsgi_application>
# where <wsgi_application> is a WSGI application object.
- url: .*  # This regex directs all routes to main.app
  script: main.app

# Third party libraries that are included in the App Engine SDK must be listed
# here if you want to use them.  See
# https://developers.google.com/appengine/docs/python/tools/libraries27 for
# a list of libraries included in the SDK.  Third party libs that are *not* part
# of the App Engine SDK don't need to be listed here, instead add them to your
# project directory, either as a git submodule or as a plain subdirectory.
# TODO: List any other App Engine SDK libs you may need here.
#libraries:
#- name: jinja2
#  version: latest

(2) Datei appengine_config.py Beschreibt die Einstellungen zum Laden des lib-Verzeichnisses beim Ausführen von App Engine.

[appengine_config.py]


# `appengine_config.py` is automatically loaded when Google App Engine
# starts a new instance of your application. This runs before any
# WSGI applications specified in app.yaml are loaded.
from google.appengine.ext import vendor

# Third-party libraries are stored in "lib", vendoring will make
# sure that they are importable by the application.
vendor.add('lib')

(3) main.py-Datei Importieren Sie Flask in die Datei und beschreiben Sie die Einstellungen für das Routing.

[main.py]


# `main` is the top level module for your Flask application.

# Import the Flask Framework
from flask import Flask
app = Flask(__name__)
# Note: We don't need to call run() since our application is embedded within
# the App Engine WSGI application server.

@app.route('/')
def hello():
    """Return a friendly HTTP greeting."""
    return 'Hello World!'

@app.errorhandler(404)
def page_not_found(e):
    """Return a custom 404 error."""
    return 'Sorry, Nothing at this URL.', 404

@app.errorhandler(500)
def application_error(e):
    """Return a custom 500 error."""
    return 'Sorry, unexpected error: {}'.format(e), 500

(Referenz)

8. Bestätigung des Betriebs in der lokalen Umgebung

Terminal


$ dev_appserver.py . (#Entwickler im App Engine SDK_appserver.Führen Sie die py-Datei aus)

  # "Do you want to continue (Y/n)?"Wird angezeigt"y"Eingeben

Geben Sie nach Ausführung des Befehls "http: // localhost: 8080" in das Adressfeld des Browsers ein. Wenn "Hallo Welt!" Angezeigt wird, ist dies erfolgreich.

9. Erstellen Sie ein Projekt auf dem Verwaltungsbildschirm von Google Cloud Platform

Melden Sie sich auf der Google Cloud Platform-Seite an und erstellen Sie ein Projekt, das über den Administratorbildschirm bereitgestellt werden soll.

  1. Melden Sie sich bei [Google Cloud Platform-Verwaltungsbildschirm (Dashboard)] an (https://console.cloud.google.com/home/dashboard).
  2. Klicken Sie oben links auf dem Bildschirm auf das Hamburger-Menü (Tools und Services)
  3. Klicken Sie auf "IAM and Management".
  4. Klicken Sie auf "Alle Projekte"
  5. Klicken Sie auf "+ Projekt erstellen"
  6. Geben Sie den Projektnamen in "Neues Projekt" ein und klicken Sie auf "Erstellen".
  7. Kopieren Sie die dem neu erstellten Projekt zugewiesene

10. In Google App Engine bereitstellen

Terminal


$ open https://appengine.google.com/start (#Melden Sie sich auf der App Engine-Website an und erstellen Sie zunächst die App Engine-Ressourcen, die im Projekt verwendet werden sollen *"asia-northeast1"wählen)

$ appcfg.py update -A <Projekt-ID> -V v1 . (# <Projekt-ID> には手順 9 で用意したProjekt-ID を入力)

<Referenz>
#Wenn dies nicht Ihre erste Bereitstellung ist, führen Sie zuerst den folgenden Befehl aus, um das Projekt als Standard festzulegen, und führen Sie dann den obigen Befehl erneut aus.
$ appcfg.py set_default_version -V v1 -A <Projekt-ID>

Geben Sie nach Ausführung des Befehls "https: // .appspot.com" in das Adressfeld des Browsers ein. Wenn "Hallo Welt!" Angezeigt wird, ist dies erfolgreich.

(Referenz)

Recommended Posts

[Python] Führen Sie Flask in Google App Engine aus
Tweet (API 1.1) mit Google App Engine für Python
Stellen Sie die Django-Anwendung in Google App Engine (Python3) bereit.
PIL in Python unter Windows8 (für Google App Engine)
Verwendung von Django mit Google App Engine / Python
Verwenden Sie ndb.tasklet mit Google App Engine
Führen Sie Cloud Dataflow (Python) über AppEngine aus
Bis Sie die Flask-Anwendung vorerst in Google App Engine ausführen
Verwenden Sie externe Module mit Google App Engine
Verwenden von Djangos ImageField mit AppEngine / Python
Gewinnen Sie die Python + Flask-Web-App mit Jenkins
Führen Sie Python-Webanwendungen mit NGINX + NGINX Unit + Flask aus
Erstellen Sie eine Python3 + -Kolbenumgebung auf der Compute Engine von GCP
Führen Sie Flask unter CentOS mit Python3.4, Gunicorn + Nginx aus.
Führen Sie Openpose unter Python (Windows) aus.
Führen Sie Tensorflow 2.x unter Python 3.7 aus
Konstruktionsverfahren für die Google App Engine / Python-Entwicklungsumgebung (Ende 2014)
(Anfänger) Grundlegende Verwendung des Datenspeichers von Google App Engine
Führen Sie Pythons CGI auf CORESERVER aus
Führen Sie den Unix-Befehl auf Python aus
Erste Schritte mit Google App Engine für Python und PHP
Laufzeitversion der Google App Engine / Python-Standardumgebung
Beispiel zum Einfügen der Python Flask-Webanwendung in den Azure App Service (Webanwendung)
Stellen Sie Go-Apps mit GitHub-Aktionen für Google App Engine bereit
Führen Sie die App mit Flask + Heroku aus
Google AppEngine-Entwicklung mit Docker
Führen Sie Python planmäßig auf AWS Lambda aus
Führen Sie das Docker-Image von TensorFlow unter Python3 aus
Java 1 1-Unterstützung von Google App Engine
Stellen Sie die Flask-App für Heroku bereit (bitter)
Stellen Sie die Flask-App auf Heroku bereit
Stellen Sie die Flask-App auf Heroku bereit
Führen Sie Keras auf Google Colaboratory TPU aus
Führen Sie Python regelmäßig auf Heroku Scheduler aus
Haben Sie Empfehlungen für ein Kommentarbuch zur Entwicklung von GoogleAppEngine / Python?
Veröffentlichen Sie die Website kostenlos in Google App Engine (persönliches Memorandum)
Einstellungen beim Schreiben von Google App Engine / Python-Apps mit Intellij Idea
Erstellen einer Entwicklungsumgebung mit Maven in Google App Engine [Java]
Verwenden der Eigenschaftendatei mit Flexible Environment Java 8 von Google App Engine
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Führen Sie AzureKinect an Heiligabend in Python aus.
[Google App Engine] Benutzerobjekte (japanische Übersetzung)
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
Starten Sie eine Flask-App in Python Anywhere
Einfache Web-App mit Python + Flask + Heroku
[Python] Führen Sie Headless Chrome unter AWS Lambda aus
Ich kann nicht mehr mit der Google App Engine bereitstellen
Führen Sie Python-Code in der A2019 Community Edition aus
Führen Sie Python in C ++ unter Visual Studio 2017 aus
Führen Sie den Python-WSGI-Server auf der NGINX-Einheit aus
Führen Sie regelmäßig Python-Programme auf AWS Lambda aus
Installieren Sie Python3.5 + NumPy + SciPy und führen Sie es unter Windows 10 aus
Setzen Sie MicroPython unter Windows ein, um ESP32 unter Python auszuführen
Python unter Windows
Über das Problem, dass die Python-Version von Google App Engine nicht ineinander greift
Führen Sie die Google Analytics-API (Core v3) in Python aus
Führen Sie Python YOLOv3 in C ++ unter Visual Studio 2017 aus
Hinweise zur Flasche
So führen Sie MeCab unter Ubuntu 18.04 LTS Python aus
Führen Sie Zookeeper x Python (Kazoo) unter Mac OS X aus