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 zum Anwendungscode, z. B. die Laufzeit und die neueste Versionskennung.
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 Go 1.11 muss app.yaml
mindestens einen Eintrag runtime
enthalten. Eine kurze Übersicht finden Sie unter Laufzeiteinstellungen definieren.
Verzeichnisstruktur
Der Ordner jedes Dienstes muss eineapp.yaml
-Datei und eine oder mehrere Go-Quelldateien enthalten, die am Anfang die Anweisung package main
enthalten.
Weitere Informationen zum Strukturieren mehrerer Dienste in Ihrer Anwendung finden Sie unter Webdienste in App Engine strukturieren.
Beispiel
Das folgende Beispiel zeigt eine app.yaml
-Datei für eine Go 1.11-Anwendung:
runtime: go111 instance_class: F2 env_variables: BUCKET_NAME: "example-gcs-bucket" handlers: - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /.* script: auto
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 |
---|---|
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: go111 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 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 diese Werte dann mit 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. |
inbound_services |
Optional.
Anwendungen müssen diese Dienste aktivieren, damit sie eingehende Anfragen empfangen können. Sie können den Dienst für eine Go 1.11-Anwendung aktivieren, indem Sie in der Datei
|
instance_class |
Optional. Die Instanzklasse für diesen Dienst. Die Verfügbarkeit folgender Werte hängt von der Skalierung Ihres Dienstes ab:
|
main |
Optional. Der Pfad oder der vollständig qualifizierte Paketname des main-Pakets. Diese Einstellung gilt nur, wenn Ihre Anwendung den Go-Modulmodus verwendet.
Sie müssen den Pfad zum Hauptpaket angeben, wenn myapp/ ├── app.yaml ├── go.mod ├── cmd │ └── web │ └── main.go └── pkg └── users └── users.go Dann verwenden Sie entweder main: ./cmd/web oder main: example.com/myapp/cmd/web |
runtime |
Erforderlich. Der Name der Laufzeitumgebung, die von Ihrer Anwendung verwendet wird. Beispiel: Verwenden Sie zum Festlegen von Go 1.11 Folgendes: runtime: go111 |
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 |
---|---|
auth_fail_action |
Optional.
Beschreibt die auszuführende Aktion, wenn für einen Handler das Element
Wenn ein anderes Verhalten benötigt wird, können Sie die Verarbeitung von Nutzeranmeldungen in der Anwendung selbst implementieren. Weitere Informationen finden Sie unter Users API. Im folgenden Beispiel sind eine Anmeldung für das Verzeichnis Sie können einen Handler so konfigurieren, dass der Zugriff auf geschützte URLs verweigert wird, wenn der Nutzer nicht angemeldet ist, statt den Nutzer zur Anmeldeseite weiterzuleiten. Dazu fügen Sie der Konfiguration des Handlers die Anweisung |
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 |
login |
Optional. Bestimmt, ob der URL-Handler erfordert, dass der Nutzer angemeldet ist. Dieses Element hat drei mögliche Werte:
Wenn ein URL-Handler mit einer anderen
Hinweis: Die Anmeldebeschränkung |
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: /.* secure: always redirect_http_response_code: 301 script: auto |
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 |