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.
Die Datei app.yaml
enthält außerdem Informationen zu Anwendungscode, PHP-Laufzeit und Einstiegspunkt.
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.
Für PHP 7+ muss app.yaml
mindestens einen runtime
-Eintrag enthalten. Eine kurze Übersicht finden Sie unter Laufzeiteinstellungen definieren.
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 7+-Anwendung:
runtime: php81 # Replace with php74 to use PHP 7.4 handlers: # Serve a directory as a static resource. - url: /stylesheets static_dir: stylesheets # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 upload: .+\.(gif|png|jpg)$ # Serve your app through a front controller at index.php or public/index.php. - url: .* script: auto
In diesem Beispiel stellt App Engine Dateien mit den Erweiterungen gif
, png
oder jpg
als statische Ressourcen bereit. Der Anwendungscode liest die konfigurierten Dateien zur Laufzeit.
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 |
---|---|
app_engine_apis
|
Optional. Wenn Sie die gebündelten Legacy-Dienste von App Engine für Laufzeiten der zweiten Generation verwenden möchten, legen Sie dieses Feld auf |
build_env_variables
|
Optional. Wenn Sie eine Laufzeit verwenden, die Buildpacks unterstützt, können Sie Build-Umgebungsvariablen in der Datei Weitere Informationen finden Sie unter Build-Umgebungsvariablen verwenden. |
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: php81 # Replace with php74 to use PHP 7.4 default_expiration: "4d 5h" handlers: # ... Weitere Informationen finden Sie unter Cache-Ablauf. |
entrypoint |
Optional.
Überschreibt das standardmäßige Startverhalten, indem der Befehl |
env_variables
|
Optional.
Sie können Umgebungsvariablen in der Datei 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']; Sehen Sie sich auch die Liste der Laufzeitumgebungsvariablen an, die nicht überschrieben werden können. |
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 |
Optional. 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. Wenn Sie statische Beispiel: url: .* script: auto |
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 7+-Anwendung aktivieren, indem Sie in der
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:
|
runtime |
Erforderlich. Der Name der Laufzeitumgebung, die von der Anwendung verwendet wird. Zum Festlegen von PHP 8.1 verwenden Sie beispielsweise: runtime: php81 |
service |
Erforderlich, wenn Sie einen Dienst erstellen.
Optional für den Standarddienst service: service-name |
service_account |
Optional. Mit dem Element service_account: [SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com |
vpc_access_connector |
Optional. Konfiguriert Ihre Anwendung für die Verwendung eines Connectors für serverlosen VPC-Zugriff, damit sie Anfragen an interne Ressourcen in Ihrem VPC-Netzwerk senden kann. Weitere Informationen finden Sie unter Verbindung zu einem VPC-Netzwerk herstellen.
vpc_access_connector: name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME" egress_setting: all-traffic |
Handlers-Element
Das Element handlers
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 |
---|---|
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: auto secure: always redirect_http_response_code: 301
Wenn eine Nutzeranfrage umgeleitet wird, wird der HTTP-Statuscode auf den Wert des Parameters |
script |
Optional.
Gibt an, dass Anfragen an den spezifischen Handler auf Ihre Anwendung ausgerichtet werden sollen. Der einzige akzeptierte Wert für das Element handlers: - url: /images static_dir: static/images - url: /.* script: myapp.php |
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: auto secure: always 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 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 und Anwendungscodedateien dürfen nicht übereinstimmen. |
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 |