Überblick
Die Go-Laufzeit ist der Softwarestack, der für die Installation Ihres Anwendungscodes und der Abhängigkeiten sowie für die Ausführung dieser Anwendung in der flexiblen Umgebung verantwortlich ist.
Folgende Go-Laufzeitversionen werden unterstützt: 1.19
(Vorschau), 1.18
(Vorschau), 1.15
,
1.14
, 1.13
, 1.12
, 1.11
, 1.10
und 1.9
.
Wichtig: Die Laufzeitunterstützung wird ab der Go-Version 1.18 auf die Buildpacks von Google Cloud umgestellt:
Vorschau: Ab Version
1.18
werden alle neuen Go-Laufzeiten mit Buildpacks erstellt, sodass Sie ein Betriebssystem auswählen können. Wenn Sie diese neuen Laufzeiten verwenden möchten, müssen Sie zusätzliche Einstellungen inapp.yaml
angeben. Weitere InformationenDie Go-Laufzeitversionen
1.15
und früher werden mit Docker erstellt. Der Quellcode ist auf GitHub verfügbar.
Go-Version auswählen
Neue Laufzeitversionen (Vorschau)
Für Go-LaufzeitVersion 1.18 und höher müssen Sie
runtime_config
undoperating_system
Einstellungen imapp.yaml
um ein Betriebssystem anzugeben. Go-Laufzeitversionen 1.18 (Vorschau) und 1.19 (Vorschau) werden auf Ubuntu 22 ausgeführt.
Voraussetzung:
Ihre Anwendung muss eine
gcloud
-Befehlszeile der Version 417.0.1 oder höherverwenden. Führen Sie den Befehlgcloud version
aus, um die aktuellegcloud
-Version aufzurufen.Ihre Anwendung muss Go-Module verwenden und die Datei
go.mod
in den Ordner des Ordnersapp.yaml
aufnehmen. Die Ordnerstruktur der Anwendung mitgo.mod
muss beispielsweise Folgendes darstellen:<application-root>/ --> app.yaml --> go.mod --> Other source files used in your application.
Optional: Sie können eine Laufzeitversion angeben, indem Sie die Einstellung runtime_version
in Ihre app.yaml
aufnehmen. Standardmäßig wird die neueste Go-Version verwendet, wenn die Einstellung runtime_version
nicht angegeben ist.
Beispiele
Go-Version 1.18 angeben:
runtime: go env: flex runtime_config: operating_system: "ubuntu22" runtime_version: 1.18
Angabe der neuesten unterstützten Go-Version auf Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22"
Ihre Anwendung verwendet die neueste stabile Version der Version, die in der Datei app.yaml
angegeben ist. App Engine wird automatisch auf neue Patchüberarbeitungen aktualisiert. Die Aktualisierung der Hauptversion erfolgt jedoch nicht automatisch.
Das bedeutet beispielsweise, dass eine mit Go 1.18.10 und höher erstellte Anwendung automatisch auf Go 1.18.11 aktualisiert wird, aber nicht auf die Hauptversion Go 1.19.
Wenn Sie die Go-Laufzeitversion 1.19
wie unten gezeigt in app.yaml
auswählen, wird die neueste Version 1.19 verfügbar, z. B. 1.19.5.
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu22"
runtime_version: 1.19
Weitere Informationen finden Sie in der Referenz app.yaml
.
Vorherige Laufzeitversionen
Für Go 1.15-Laufzeitversionen und -Versionen können Sie ein bestimmtes Go version
im Format go1.x
in der Konfigurationsdatei app.yaml
als runtime: go1.x
auswählen:
Beispiel
runtime: go1.14 env: flex
Wenn Sie keine Version angeben, wird automatisch die Standardversion von go1.11
ausgewählt.
Ihre Anwendung verwendet die neueste stabile Version der Version, die in der Datei app.yaml
angegeben ist. App Engine wird automatisch auf neue Patchüberarbeitungen aktualisiert. Die Aktualisierung der Hauptversion erfolgt jedoch nicht automatisch.
Das bedeutet beispielsweise, dass eine mit Go 1.14.10 und höher erstellte Anwendung automatisch auf Go 1.14.11 aktualisiert wird, aber nicht auf die Hauptversion Go 1.15.
Wenn Sie die Go-Laufzeitversion go1.15
wie unten gezeigt in app.yaml
auswählen, wird die neueste Version 1.15 verfügbar, z. B. 1.15.15.
runtime: go1.15 env: flex
Pakete importieren
Wenn Sie Ihre App in App Engine bereitstellen, wird Ihr Code kompiliert. Wenn Sie den Bereitstellungsbefehl ausführen, werden die Abhängigkeiten Ihrer App von Ihrem lokalen GOPATH
abgerufen und an den Build-Server gesendet. Fehlende Abhängigkeiten, wie z. B. Bibliotheken von Drittanbietern, führen zu Build-Fehlern.
Sie sollten Ihre App vor der Bereitstellung lokal testen, um Build-Fehler zu vermeiden und sicherzustellen, dass alle Abhängigkeiten Ihrer App mit Ihrem Code bereitgestellt werden.
Laufzeit erweitern
Anleitungen zum Erweitern und Anpassen der Go-Laufzeit finden Sie im Go-Laufzeit-Builder auf GitHub.
Metadatenserver
Jede Instanz der Anwendung kann den Compute Engine-Metadatenserver verwenden, um Informationen über die Instanz abzufragen, einschließlich Hostname, externer IP-Adresse, Instanz-ID, benutzerdefinierter Metadaten und Dienstkontoinformationen. Sie können in App Engine nicht für jede einzelne Instanz benutzerdefinierte Metadaten festlegen. Sie haben aber die Möglichkeit, projektweite benutzerdefinierte Metadaten anzugeben und aus den App Engine- und Compute Engine-Instanzen zu lesen.
Verwenden Sie das Paket cloud.google.com/go/compute/metadata
für den Zugriff auf den Metadatenserver.