Bevor Sie Ihre Anwendung in der Python 3-Laufzeit der App Engine-Standardumgebung ausführen können, müssen Sie möglicherweise einige der von App Engine verwendeten Konfigurationsdateien ändern:
app.yaml
Diese Datei enthält Informationen zum Code Ihrer Anwendung, z. B. die Laufzeit und die Anwendungs-Handler.appengine_config.py
Die Python 2-Laufzeit verwendet diese Datei, um auf Bibliotheken von Drittanbietern zuzugreifen und Werte für Konstanten und "Hook-Funktionen" bereitzustellen. Die Python 3-Laufzeit verwendet diese Datei nicht.
app.yaml
wird aktualisiert
Das Verhalten einiger Felder in Ihrer app.yaml
-Konfigurationsdatei wurde geändert. Entfernen Sie alle nicht mehr unterstützten Felder und aktualisieren Sie andere Felder, wie in der folgenden Tabelle beschrieben.
Feld | Art der Änderung | Beschreibung |
---|---|---|
app_engine_apis | Gilt nur für Python 3 | Muss auf true gesetzt sein, wenn Sie auf die gebündelten Legacy-Dienste für Python 3 zugreifen möchten. |
api_version application_readable builtins |
Nicht mehr unterstützt. | Nicht zutreffend in der Python 3-Laufzeit |
threadsafe | Nicht mehr unterstützt. | Alle Anwendungen gelten als threadsicher. Wenn Ihre Anwendung nicht threadsicher ist, geben Sie einen entrypoint an, um 1 Thread pro Worker zu konfigurieren.Wenn Sie beispielsweise die F4-Instanzklasse verwenden: entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app Sehen Sie sich die Best Practices für Einstiegspunkte für empfohlene Anzahl von Workern für jede Instanzklasse. |
Bibliotheken | Nicht mehr unterstützt. | Verwenden Sie die Datei requirements.txt , um Abhängigkeiten zu deklarieren und Clientbibliotheken zu installieren. |
handlers: login | Unterstützt, wenn für app_engine_apis der Wert true gilt. |
Wenn Sie die gebündelten Legacy-Dienste für Python 3 nicht verwenden, verwenden Sie für die Nutzerverwaltung Identity and Access Management (IAM). |
handlers: script | Geändert | In der Python 2-Laufzeit verwenden Sie das Feld script , um eingehende Anfragen an das Skript Ihrer Anwendung weiterzuleiten.In der Python 3-Laufzeit müssen Sie ein Web-Framework mit anwendungsinternem Routing (z. B. Flask oder Django) anstelle des Feldes Führen Sie zum Migrieren der Datei
Die Verarbeitung statischer Dateien bleibt unverändert. |
Wenn Sie eines der verworfenen Felder verwenden, gibt App Engine einen Fehler zurück, wenn Sie Ihre Anwendung bereitstellen.
Sie können die folgenden Beispiele verwenden, um die Unterschiede zwischen den app.yaml
-Dateien zu vergleichen:
Python 2
runtime: python27 api_version: 1 threadsafe: true handlers: - url: / script: home.app - url: /index\.html script: home.app - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.app login: admin - url: /.* script: not_found.app
Python 3
runtime: python312
app_engine_apis: true
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /admin/.*
script: auto
login: admin
appengine_config.py
entfernen
Die Python 2-Laufzeit in der App Engine-Standardumgebung verwendet die Datei appengine_config.py
.
Diese Datei wird in der Python 3-Laufzeit ignoriert. Stattdessen verwendet die Python 3-Laufzeit die Standarddatei requirements.txt
zum Installieren von Abhängigkeiten, einschließlich Abhängigkeiten, die nativen Code verwenden.