Hinweis: In den nächsten Monaten wird die App Engine-Dokumentationswebsite neu organisiert, um die Suche nach Inhalten und eine bessere Abstimmung mit den anderen Google Cloud-Produkten zu erleichtern. Es werden dieselben Inhalte bereitgestellt, aber die Navigation entspricht jetzt der bei den restlichen Cloud-Produkten. Wenn Sie Feedback oder Fragen zur Website haben, klicken Sie auf „Feedback senden“.

Go-Laufzeit

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Ü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 in app.yaml angeben. Weitere Informationen

  • Die 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 Befehl gcloud version aus, um die aktuelle gcloud-Version aufzurufen.

  • Ihre Anwendung muss Go-Module verwenden und die Datei go.mod in den Ordner des Ordners app.yaml aufnehmen. Die Ordnerstruktur der Anwendung mit go.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.