Regions-ID
REGION_ID
ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r
in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.
Die Einstellungen einer App Engine-Anwendung werden in der Datei app.yaml
konfiguriert.
Diese Datei legt die URL-Pfade für Anfrage-Handler und statische Dateien fest.
Die Datei app.yaml
enthält außerdem Informationen zum Code der Anwendung, zur Node.js-Laufzeit und zur neuesten Versionskennzeichnung.
Jeder Dienst in der Anwendung hat eine eigene app.yaml
-Datei, die als Deskriptor für seine Bereitstellung dient. Erstellen Sie zuerst die Datei app.yaml
für den Standarddienst default
. Erst dann können Sie Dateien vom Typ app.yaml
für zusätzliche Dienste in der Anwendung anlegen und bereitstellen.
Verzeichnisstruktur
Weitere Informationen zum Strukturieren mehrerer Dienste in der Anwendung finden Sie unter Webdienste in App Engine strukturieren.Beispiel
Das folgende Beispiel zeigt eine app.yaml
-Datei für eine PHP 5-Anwendung:
runtime: php55 api_version: 1 handlers: # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 upload: .+\.(gif|png|jpg)$ application_readable: true # Serve php scripts. - url: /(.+\.php)$ script: \1
Im obigen Beispiel werden Dateien mit der Erweiterung gif
, png
oder jpg
als statische Ressourcen bereitgestellt. Die Dateien wurden so konfiguriert, dass sie zur Laufzeit vom Anwendungscode gelesen werden können.
Das Beispiel liefert auch alle PHP-Skripts. Sie können den Skript-Handler mithilfe des Ausdrucks url: /([^/]+\.php)
auf Skripts auf Stammebene beschränken. Für vorhandene Anwendungen kann es nützlich sein, das Routing für Apache mod_rewrite $_GET['q']
zu simulieren.
Im Folgenden finden Sie eine ausführlichere app.yaml
-Konfiguration:
runtime: php55 api_version: 1 handlers: - url: / script: home.php - url: /index\.html script: home.php - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.php login: admin - url: /.* script: not_found.php
Syntax
Die Syntax von app.yaml
entspricht dem YAML-Format.
Das YAML-Format unterstützt Kommentare. Eine Zeile, die mit einem Rautezeichen (#
) beginnt, wird ignoriert:
# This is a comment.
URL- und Dateipfadmuster verwenden die erweiterte POSIX-Syntax für reguläre Ausdrücke mit Ausnahme von Sortierelementen und -klassen. Rückverweise auf gruppierte Übereinstimmungen (z. B. \1
) werden ebenso wie die folgenden Perl-Erweiterungen unterstützt: \w \W \s \S \d \D
.
Laufzeit- und Anwendungselemente
Element | Beschreibung |
---|---|
application |
Es wird empfohlen, das Element
Weitere Informationen zur Verwendung dieser Befehle finden Sie unter Anwendung bereitstellen. Die Anwendungs-ID ist die Projekt-ID in der Google Cloud Console, die Sie beim Erstellen der Anwendung in der Google Cloud Console angegeben haben. |
api_version |
Erforderlich. Die Version der API in der Laufzeitumgebung, die von Ihrer Anwendung verwendet wird. Dieses Feld ist in neueren App Engine-Laufzeiten nicht verfügbar.
Wenn Google die Unterstützung für eine neue Version der API einer Laufzeitumgebung bekannt gibt, verwendet Ihre bereitgestellte Anwendung weiterhin die Version, für die sie geschrieben wurde. Ändern Sie diesen Wert und stellen Sie die Anwendung anschließend noch einmal in App Engine bereit, um die Anwendung auf eine neue API-Version zu aktualisieren. Wenn Sie den Wert Derzeit ist für App Engine genau eine Version der |
default_expiration |
Optional. Legt einen globalen Standard-Cache-Zeitraum für alle Handler statischer Dateien einer Anwendung fest. Außerdem haben Sie die Möglichkeit, eine Cache-Dauer für bestimmte Handler statischer Dateien zu konfigurieren. Der Wert setzt sich aus einem String von Zahlen und Einheiten zusammen, die durch Leerzeichen voneinander getrennt sind. Bei den Einheiten kann es sich um „d“ für Tage, „h“ für Stunden, „m“ für Minuten und „s“ für Sekunden handeln. Beispielsweise legt runtime: php55 api_version: 1 default_expiration: "4d 5h" handlers: # ... Weitere Informationen finden Sie unter Cache-Ablauf. |
env_variables
|
Optional.
Sie können Umgebungsvariablen in Ihrer Umgebungsvariablen mit dem Präfix env_variables: MY_VAR: "my value" MY_VAR und my value der Name und Wert der Umgebungsvariablen, die Sie definieren möchten, und jeder Eintrag der Umgebungsvariablen ist um zwei Leerzeichen unter dem Element env_variables eingerückt. Umgebungsvariablen, denen kein Wert zugewiesen ist, werden standardmäßig auf "None" gesetzt.
Sie können den Wert dieser Variablen dann mit echo getenv('MY_VAR'); echo $_SERVER['MY_VAR']; |
error_handlers |
Optional. Wird verwendet, um benutzerdefinierte Fehlerseiten zu konfigurieren, die für verschiedene Fehlertypen zurückgegeben werden. Dieses Element kann folgende Elemente enthalten:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.html |
handlers |
Erforderlich: Eine Liste mit URL-Mustern und Beschreibungen ihrer Verarbeitung. In App Engine können URLs auf zwei Arten verarbeitet werden: durch Ausführung von Anwendungscode oder durch Bereitstellung von statischen Dateien, die mit dem Code hochgeladen wurden, z. B. Bilder, CSS- oder JavaScript-Dateien. |
inbound_services |
Optional.
Anwendungen müssen diese Dienste aktivieren, damit sie eingehende Anfragen empfangen können. Sie können den Dienst für eine PHP 5-Anwendung aktivieren, indem Sie in der Die folgenden eingehenden Dienste sind verfügbar:
inbound_services: - mail - warmup |
instance_class |
Optional. Die Instanzklasse für diesen Dienst. Die Verfügbarkeit folgender Werte hängt von der Skalierung Ihres Dienstes ab:
|
module |
Hinweis: Module werden jetzt als Dienste bezeichnet. Wenn Sie die Anwendung mit der gcloud CLI verwalten möchten, verwenden Sie stattdessen das Element service. |
runtime |
Erforderlich. Der Name der Laufzeitumgebung, die von der Anwendung verwendet wird. Zum Festlegen von PHP 5 verwenden Sie beispielsweise: runtime: php55 |
service |
Dienste wurden früher als Module bezeichnet.
Wird nur von der gcloud CLI oder gcloud-basierten Plug-ins unterstützt, z. B.
Erforderlich, wenn Sie einen Dienst erstellen.
Optional für den Standarddienst service: service-name Hinweis: Der Befehl module: service-name |
service_account |
Optional. Mit dem Element service_account: [SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com |
skip_files |
Optional.
Mit dem Element Für skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$ Das Standardmuster schließt Folgendes aus: Emacs-Sicherungsdateien mit den Namensmustern
Wenn Sie die obige Liste regulärer Ausdrücke erweitern möchten, kopieren Sie sie in die Datei skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$ - ^(.*/)?.*\.bak$
Fügen Sie den Verzeichnisnamen zur Liste hinzu, um ein vollständiges Verzeichnis zu überspringen. Wenn zum Beispiel ein Verzeichnis namens skip_files: - logs/ |
version |
Es wird empfohlen, das Element
Weitere Informationen zur Verwendung dieses Befehls finden Sie unter Anwendung bereitstellen. Eine Kennzeichnung für die Version Ihres Anwendungscodes, den Sie in App Engine bereitstellen.
Die Versions-ID kann Kleinbuchstaben, Ziffern und Bindestriche enthalten. Sie darf nicht mit dem Präfix
Hinweis: Versionsnamen sollten mit einem Buchstaben beginnen, damit sie sich von numerischen Instanzen unterscheiden, die immer durch eine Zahl angegeben werden. Damit wird das Problem der Mehrdeutigkeit umgangen, das bei URLs wie
Jede Version einer Anwendung behält eine eigene Kopie von |
Handlers-Element
Das Element handlers
ist ein erforderliches Element in der Konfigurationsdatei app.yaml
. Es enthält eine Liste von URL-Mustern und Beschreibungen zu deren Verarbeitung. In App Engine können URLs auf zwei Arten verarbeitet werden: durch Ausführung von Anwendungscode oder durch Bereitstellung von statischen Dateien, die mit dem Code hochgeladen wurden, z. B. Bilder, CSS- oder JavaScript-Dateien.
Die Muster werden in der Reihenfolge ausgewertet, in der sie in der Datei app.yaml
aufgeführt sind, und zwar von oben nach unten. Die erste mit der URL übereinstimmende Zuordnung wird zum Verarbeiten der Anfrage verwendet.
In der folgenden Tabelle sind die Unterelemente des Elements handlers
aufgeführt, die das Verhalten von Skripts, statischen Dateien, statischen Verzeichnissen und anderen Einstellungen steuern.
Element | Beschreibung |
---|---|
application_readable |
Optional. Boolescher Wert. Standardmäßig werden Dateien, die in Handlern statischer Dateien deklariert sind, als statische Daten hochgeladen und ausschließlich Endnutzern bereitgestellt. Sie können nicht von Anwendungen gelesen werden. Wenn dieses Feld auf „true“ gesetzt ist, werden die Dateien außerdem als Codedaten hochgeladen, damit Ihre Anwendung sie lesen kann.
Beide Uploads werden Ihren Kontingenten für Code- und statische Datenspeicherressourcen angerechnet.
Dieses Feld ist in neueren App Engine-Laufzeiten nicht verfügbar. |
expiration
|
Optional.
Die Zeitdauer, für die eine von diesem Handler bereitgestellte statische Datei im Cache von Webproxys und Browsern gespeichert werden soll. Der Wert ist ein String aus Zahlen und Einheiten, die durch Leerzeichen getrennt sind. Als Einheiten können d für Tage, h für Stunden, m für Minuten und s für Sekunden verwendet werden. Beispielsweise legt "4d 5h" den Cache-Ablauf auf 4 Tage und 5 Stunden nach der ersten Anforderung der Datei fest. Wenn kein Wert angegeben ist, wird der Standardwert der Anwendung (default_expiration ) verwendet. Weitere Informationen finden Sie unter Cache-Ablauf.
|
http_headers |
Optional. Sie können HTTP-Header für Antworten Ihrer Handler für statische Dateien oder Verzeichnisse festlegen. Wenn Sie HTTP-Header in den handlers: - url: /images static_dir: static/images http_headers: X-Foo-Header: foo X-Bar-Header: bar value vary: Accept-Encoding # ... CORS-UnterstützungEin wichtiger Nutzen dieser Funktion ist die Unterstützung von Cross-Origin Resource Sharing (CORS), z. B. beim Zugriff auf Dateien, die von einer anderen App Engine-Anwendung gehostet werden.
Sie können beispielsweise eine Spieleanwendung So können Sie dafür sorgen, dass Ihr Handler für statische Dateien den erforderlichen Antwortheaderwert zurückgibt: handlers: - url: /images static_dir: static/images http_headers: Access-Control-Allow-Origin: https://mygame.uc.r.appspot.com # ... Hinweis: Wenn Sie allen Nutzern Zugriff auf Ihre Assets gewähren möchten, können Sie anstelle von |
mime_type |
Optional. Wenn angegeben, werden alle von diesem Handler bereitgestellten Dateien unter Verwendung des genannten MIME-Typs bereitgestellt. Wenn keine Angabe gemacht wurde, wird der MIME-Typ für eine Datei von der jeweiligen Dateiendung abgeleitet. Wenn dieselbe Datei mit mehreren Dateiendungen hochgeladen wird, kann die resultierende Endung von der Reihenfolge abhängen, in der die Uploads erfolgt sind. Weitere Informationen zu den möglichen MIME-Medientypen finden Sie auf der IANA-Website für MIME-Medientypen. |
redirect_http_response_code |
Optional.
handlers: - url: /youraccount/.* script: accounts.php secure: always redirect_http_response_code: 301
Wenn eine Nutzeranfrage umgeleitet wird, wird der HTTP-Statuscode auf den Wert des Parameters |
script |
Optional. Gibt den Pfad zum Skript aus dem Stammverzeichnis der Anwendung an: ... handlers: - url: /profile/(.*)/(.*) script: /employee/\2/\1.php # specify a script In neueren App Engine-Laufzeiten hat sich das Verhalten dieses Feldes geändert. |
secure |
Optional. Die Einstellung secure kann von jedem URL-Handler verwendet werden. Dazu zählen auch Skript-Handler und Handler für statische Dateien. Das Element secure kann folgende Werte haben:
handlers: - url: /youraccount/.* script: accounts.php secure: always
Der Entwicklungs-Webserver unterstützt keine HTTPS-Verbindungen. Der Parameter Wenn Sie mithilfe der Domain Zur Verwendung von benutzerdefinierten Domains mit HTTPS müssen Sie zuerst SSL-Zertifikate für diese Domain aktivieren und konfigurieren. An- und Abmeldungen in bzw. von Google-Konten erfolgen unabhängig von der Konfiguration der Anwendungs-URLs immer über sichere Verbindungen. |
static_dir
|
Optional. Der Pfad zum Verzeichnis mit den statischen Dateien, ausgehend vom Stammverzeichnis der Anwendung. Alle Informationen nach dem Ende des übereinstimmenden
Jede Datei im statischen Verzeichnis wird mit dem MIME-Typ bereitgestellt, der der jeweiligen Dateiendung entspricht, sofern er nicht durch die Einstellung
Alle Dateien in diesem Verzeichnis werden mit Ihrer Anwendung als statische Dateien hochgeladen. Statische Dateien werden von App Engine getrennt von den Dateien Ihrer Anwendung gespeichert und bereitgestellt. Statische Dateien sind im Dateisystem der Anwendung nicht standardmäßig verfügbar. Setzen Sie die Option handlers: # All URLs beginning with /stylesheets are treated as paths to # static files in the stylesheets/ directory. - url: /stylesheets static_dir: stylesheets # ... |
static_files
|
Optional. Ein Handler für Muster statischer Dateien verknüpft ein URL-Muster mit Pfaden zu statischen Dateien, die mit der Anwendung hochgeladen werden. Mit dem regulären Ausdruck des URL-Musters können Gruppierungen regulärer Ausdrücke definiert werden, die beim Erstellen des Dateipfads verwendet werden sollen. Dies stellt eine Alternative zur Verwendung von handlers: # All URLs ending in .gif .png or .jpg are treated as paths to # static files in the static/ directory. The URL pattern is a # regular expression, with a grouping that is inserted into the # path to the file. - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ # ...
Statische Dateien werden von App Engine getrennt von Anwendungsdateien gespeichert und bereitgestellt. Standardmäßig sind statische Dateien im Dateisystem der Anwendung nicht verfügbar. Setzen Sie die Option Statische Dateien und Anwendungscodedateien dürfen nicht übereinstimmen. Wenn ein Pfad zu statischen Dateien mit einem Pfad zu einem Skript übereinstimmt, das von einem dynamischen Handler verwendet wird, kann der dynamische Handler nicht auf das Skript zugreifen. |
upload |
Optional. Ein regulärer Ausdruck, der mit den Dateipfaden aller Dateien übereinstimmt, auf die von diesem Handler verwiesen wird. Dies ist erforderlich, da mit dem Handler nicht ermittelt werden kann, welche Dateien im Anwendungsverzeichnis mit den angegebenen |
url |
Erforderliches Element unter Das URL-Muster verhält sich etwas anders, wenn es mit den folgenden Elementen verwendet wird:
|
Elemente skalieren
Mit den Elementen in der folgenden Tabelle konfigurieren Sie, wie Ihre Anwendung skaliert wird. Weitere Informationen zur Skalierung von App Engine-Anwendungen finden Sie unter Skalierungstypen.
Element | Beschreibung |
---|---|
automatic_scaling |
Optional. Gilt nur für Anwendungen, die eine Instanzklasse von F1 oder höher verwenden. Geben Sie dieses Element an, um die Standardeinstellungen für Autoscaling zu ändern, z. B. Mindest- und Höchstwerte für die Anzahl der Instanzen, Latenz und gleichzeitige Verbindungen für einen Dienst. Dieses Element kann folgende Elemente enthalten:
automatic_scaling: target_cpu_utilization: 0.65 min_instances: 5 max_instances: 100 min_pending_latency: 30ms max_pending_latency: automatic max_concurrent_requests: 50 |
basic_scaling |
Für Anwendungen, die eine Instanzklasse B1 oder höher verwenden, muss entweder dieses Element oder Dieses Element ermöglicht die einfache Skalierung von Instanzklassen des Typs B1 und höher. Es kann die folgenden Elemente enthalten:
basic_scaling: max_instances: 11 idle_timeout: 10m |
manual_scaling |
Für Anwendungen, die eine Instanzklasse B1 oder höher verwenden, muss entweder dieses Element oder Dieses Element ermöglicht die manuelle Skalierung von Instanzklassen des Typs B1 und höher. Es kann die folgenden Elemente enthalten:
manual_scaling: instances: 5 |