Sie können jedes beliebige linux/amd64-kompatible Paket mit Instanzen verwenden, die in der flexiblen App Engine-Umgebung laufen. In dieser Anleitung wird davon ausgegangen, dass Sie die Pakete go get
verwenden, um die Pakete direkt aus unterstützten Repositories wie GitHub, Bitbucket, LaunchPad usw. abzurufen.
Ab Go-Version 1.22:
Sie können
go get
nicht außerhalb eines Moduls im Legacy-ModusGOPATH
(GO111MODULE
=off
) verwenden. Weitere Informationen finden Sie unter Tools.In Go wird empfohlen, eine
go.mod
-Datei zum Verwalten von Abhängigkeiten zu verwenden. Fügen Sie einego.mod
-Datei in denselben Ordner wie dieapp.yaml
-Datei ein, um Abhängigkeiten während der Bereitstellung zu installieren. Weitere Informationen zu Go-Versionen und zum Verwalten von Abhängigkeiten für Anbieterverzeichnisse finden Sie unter GOPATH und Module.
Abhängigkeiten deklarieren und verwalten
Go-Anwendungen sind in Paketen organisiert, die die Verzeichnisstruktur Ihrer Quelldateien widerspiegeln. Wenn Sie eine Importanweisung verwenden, werden die relativen Pfade im Import interpretiert. Gültige Importpfade sind vollständig qualifizierte Pfade, die sich auf das Unterverzeichnis src
aller Verzeichnisse beziehen, die im GOPATH
angegeben sind.
Angenommen, Sie definieren Folgendes für eine Beispielanwendung:
GOPATH
-Modul:export GOPATH=/home/fred/go.
src1-1.go
-Datei:import "foo/bar"
Die gcloud CLI sucht nach dem Paket
foo/bar
am Standort/home/fred/go/src/foo/bar
, wenn Sie die Anwendung ausführen oder bereitstellen.
Achten Sie beim Einfügen Ihrer Paketquellen in GOPATH
darauf, dass sich der Quellcode nicht im Anwendungsverzeichnis mit der Datei app.yaml
oder auf einer tieferen Ebene befindet. In diesem Fall können schwer zu bemerkende Probleme auftreten. Ein Paket könnte zweimal geladen werden: einmal für den Pfad relativ zum Verzeichnis eines Dienstes und einmal für den vollständig qualifizierten Pfad. Um Probleme zu vermeiden durchsucht die gcloud CLI sowohl das Verzeichnis als auch das GOPATH
und meldet einen Fehler, wenn ein Konflikt erkannt wird.
Für optimale Ergebnisse empfehlen wir Folgendes:
- Erstellen Sie im Verzeichnis Ihrer Anwendung ein eigenes Verzeichnis für jeden Dienst
- Das Verzeichnis jedes Dienstes sollte die Datei
app.yaml
des Dienstes und eine oder mehrere.go
-Dateien enthalten - Fügen Sie in das Verzeichnis eines Dienstes keine Unterverzeichnisse ein
GOPATH
sollte ein Verzeichnis angeben, das sich außerhalb des Verzeichnisses Ihrer Anwendung befindet und alle Abhängigkeiten enthält, die von Ihrer Anwendung importiert werden
Erforderliche Pakete herunterladen
Sie können Pakete mit dem Befehl go get
herunterladen. So laden Sie beispielsweise packagename
von GitHub my_repo
herunter:
go get github.com/my_repo/packagename
Auf App Engine bereitstellen
Sie müssen die benötigten Bibliotheken zusammen mit Ihrem Anwendungscode bereitstellen, um Ihre Anwendung in App Engine bereitzustellen. Ausführliche Informationen finden Sie unter Anwendung testen und bereitstellen.