Sie können den lokalen Entwicklungsserver verwenden, um die Ausführung Ihrer App Engine-Anwendung in der Produktion zu simulieren und für den Zugriff auf gebündelte App Engine-Dienste zu nutzen.
Die simulierte Umgebung erzwingt gewisse Sandbox-Einschränkungen wie eingeschränkte Systemfunktionen und Go 1.11-Modulimporte. Andere Einschränkungen wie Zeitüberschreitungen für Anfragen oder Kontingente werden hingegen nicht erzwungen.
Der lokale Entwicklungsserver simuliert außerdem die von den Bibliotheken im SDK für App Engine bereitgestellten Dienste, einschließlich Datenspeicher, Memcache und Aufgabenwarteschlangen. Hierzu werden die Aufgaben der Dienste vom Server lokal ausführt. Wenn die Anwendung auf dem Entwicklungsserver ausgeführt wird, können Sie weiterhin Remote API-Aufrufe über HTTP-Endpunkte von Google APIs an die Produktionsinfrastruktur senden.
Hinweise
Seit Go 1.11 das Ende des Supports erreicht hat, können Sie Ihre Anwendungen nicht mehr mit der neuesten Version von dev_appserver.py
lokal ausführen. So laden Sie eine archivierte Version von devapp_server.py
herunter:
Laden Sie aus dem Archiv den komprimierten Ordner herunter, der den Server
dev_appserver.py
für Laufzeiten enthält, die das Ende des Supports erreicht haben.Extrahieren Sie den Inhalt des Verzeichnisses in Ihr lokales Dateisystem, z. B. in Ihr
/home
-Verzeichnis. Sie findendev_appserver.py
im Verzeichnisgoogle_appengine/
.
Lokalen Entwicklungsserver einrichten
Für die Ausführung des lokalen Entwicklungsserver-Tools muss Folgendes eingerichtet sein:
Prüfen Sie, ob Sie einen Python 2-Interpreter der Version 2.7.12 oder höher installiert haben.
Legen Sie für die
DEVAPPSERVER_ROOT
-Umgebungsvariable in Ihrer Shell den Pfad des Python 2-Interpreters fest.
Lokalen Entwicklungsserver ausführen
Nachdem Sie den lokalen Entwicklungsserver eingerichtet und die Konfigurationsdatei app.yaml
für die Anwendung erstellt haben, können Sie den dev_appserver.py
-Befehl für Ihre Anwendung lokal ausführen.
So starten Sie den lokalen Entwicklungsserver:
Führen Sie in dem Verzeichnis, das Ihre
app.yaml
-Konfigurationsdatei enthält, dendev_appserver.py
-Befehl aus.dev_appserver.py
Geben Sie den Verzeichnispfad zur Anwendung an. Beispiel:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py PATH_TO_YOUR_APP
Alternativ können Sie die Konfigurationsdatei eines bestimmten Dienstes angeben. Beispiel:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py app.yaml
Fügen Sie die Option
--port
ein, um den Port zu ändern:python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --port=9999 PATH_TO_YOUR_APP
Ersetzen Sie DEVAPPSERVER_ROOT durch den Pfad zu dem Ordner, in den Sie die archivierte Version von
devapp_server.py
extrahieren.goapp serve
Der
goapp serve
-Befehl ist im ursprünglichen App Engine SDK für Go enthalten und fasst das zugrunde liegende Python-Tooldev_appserver.py
zusammen. Um den lokalen Entwicklungsserver zu starten, führen Sie Folgendes aus:goapp serve
Weitere Informationen zu
dev_appserver.py
-Befehlsoptionen finden Sie unter Lokale Entwicklungsserver-Optionen.Der lokale Entwicklungsserver wird jetzt ausgeführt und ist für Anfragen bereit. Rufen Sie http://localhost:8080/ in Ihrem Webbrowser auf, um die Anwendung in Aktion zu sehen.
Wenn Sie einen benutzerdefinierten Port mit der Option
--port
angegeben haben, müssen Sie den Port in Ihrem Browser öffnen.
Mit den folgenden Tastenkombinationen können Sie den lokalen Server über die Befehlszeile beenden:
- macOS oder Linux: Strg + C
- Windows: Strg + Pause
Anwendungs-IDs angeben
Verwenden Sie die appengine.AppID
-Funktion zum Aufrufen der Anwendungs-ID auf dem lokalen Server, z. B. für das Spoofing einer E-Mail-Adresse. Den Hostnamen der ausgeführten Anwendung können Sie mit der appengine.DefaultVersionHostname
-Funktion abrufen.
Laufzeitumgebung der Anwendung erkennen
Mit der Methode
IsDevAppServer()
können Sie ermitteln, ob der Code in der Produktionsumgebung oder auf dem lokalen Entwicklungsserver ausgeführt wird. Wenn der Wert true
lautet, wird der Code in der lokalen Entwicklungsumgebung ausgeführt. Andernfalls wird er in der Produktion ausgeführt.
Lokalen Datenspeicher verwenden
Der lokale Entwicklungsserver simuliert den App Engine Datastore mithilfe einer lokalen Datei, die zwischen Aufrufen des lokalen Servers bestehen bleibt.
Weitere Informationen zu Indexen und index.yaml
finden Sie auf den Seiten Datenspeicherindexe und Konfiguration des Datenspeicherindex.
Lokalen Datenspeicher durchsuchen
Wenn die Anwendung mithilfe des lokalen Entwicklungsservers Daten in den lokalen Datenspeicher geschrieben hat, können Sie diese in der lokalen Entwicklungskonsole durchsuchen.
So durchsuchen Sie den lokalen Datenspeicher:
Rufen Sie in der lokalen Entwicklungskonsole den Datastore-Betrachter auf. Die URL lautet
http://localhost:8000/datastore
.Sehen Sie sich die Inhalte des lokalen Datenspeichers an.
ID-Zuordnungsrichtlinie angeben
Für die App Engine-Produktionsumgebung können Sie im Datenspeicher festlegen, dass Entitäts-IDs automatisch generiert werden.
Die Richtlinien für die automatische Zuweisung von IDs für den Produktionsserver unterscheiden sich zwar grundlegend von den Richtlinien für den Entwicklungsserver, doch Sie können auch hier die Richtlinie zur automatischen ID-Zuordnung für den lokalen Server angeben.
Verwenden Sie die Option --auto_id_policy
, um die Richtlinie für die automatische ID-Zuweisung anzugeben:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --auto_id_policy=sequential
Ersetzen Sie:
DEVAPPSERVER_ROOT durch den Pfad zu dem Ordner, in den Sie die archivierte Version von
devapp_server.py
extrahieren.--auto_id_policy
mit einem der folgenden:scattered
: (Standardeinstellung) IDs werden aus einer sich nicht wiederholenden Sequenz von annähernd einheitlich verteilten Ganzzahlen zugewiesen.sequential
: IDs werden aus der Sequenz von aufeinanderfolgenden Ganzzahlen zugewiesen.
Lokalen Datenspeicher löschen
Wenn Sie den lokalen Datenspeicher für eine Anwendung löschen möchten, rufen Sie den lokalen Entwicklungsserver auf:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --clear_datastore=yes app.yaml
Ersetzen Sie DEVAPPSERVER_ROOT durch den Pfad zu dem Ordner, in den Sie die archivierte Version von devapp_server.py
extrahieren.
Standort des lokalen Datenspeichers ändern
Zum Ändern des für die Datenspeicherdatei verwendeten Standorts verwenden Sie die Option --datastore_path
:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --datastore_path=/tmp/myapp_datastore app.yaml
Ersetzen Sie DEVAPPSERVER_ROOT durch den Pfad zu dem Ordner, in den Sie die archivierte Version von devapp_server.py
extrahieren.
Nutzerdienst verwenden
App Engine bietet einen Nutzerdienst, der die Authentifizierung und Autorisierung für Ihre Anwendung vereinfacht. Der lokale Entwicklungsserver simuliert das Verhalten von Google-Konten mit eigenen Anmelde- und Abmeldeseiten. Bei der Ausführung auf dem lokalen Entwicklungsserver geben die Funktionen LoginURL
und LogoutURL
URLs für /_ah/login
und /_ah/logout
auf dem lokalen Server zurück.
E-Mail-Dienst verwenden
Der lokale Entwicklungsserver kann einen SMTP-Server oder eine lokale Installation von Sendmail nutzen, um E-Mails für Aufrufe an den App Engine-E-Mail-Dienst zu senden.
SMTP verwenden
Zum Aktivieren der E-Mail-Unterstützung mit einem SMTP-Server rufen Sie dev_appserver.py
so auf:
python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
Ersetzen Sie:
[DEVAPPSERVER_ROOT]
durch den Pfad zu dem Ordner, in den Sie die archivierte Version vondevapp_server.py
extrahieren.- Optionen
--smtp_host
,--smtp_port
,--smtp_user
und--smtp_password
durch Ihre eigenen Konfigurationswerte.
Sendmail verwenden
Zum Aktivieren der E-Mail-Unterstützung mit Sendmail rufen Sie dev_appserver.py
so auf:
python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
Ersetzen Sie [DEVAPPSERVER_ROOT]
durch den Pfad zu dem Ordner, in den Sie die archivierte Version von devapp_server.py
extrahieren.
Der lokale Server verwendet dann den Befehl sendmail
, um E-Mail-Nachrichten mit der Standardkonfiguration Ihrer Installation zu versenden.
URL-Abruf verwenden
Wenn die Anwendung die URL Fetch API zum Erstellen einer HTTP-Anfrage verwendet, führt der lokale Entwicklungsserver die Anfrage direkt von Ihrem Computer aus. Das Verhalten von URL Fetch auf dem lokalen Server kann sich vom Verhalten in der App Engine-Produktionsumgebung unterscheiden, wenn Sie einen Proxyserver für den Zugriff auf Websites verwenden.