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 altenGOPATH
-Modus (GO111MODULE
=off
) verwenden. Weitere Informationen finden Sie unter Tools.In Go wird empfohlen, eine
go.mod
-Datei zum Verwalten von Abhängigkeiten zu verwenden. Wenn Sie Abhängigkeiten während des Deployments installieren möchten, fügen Sie einego.mod
-Datei in denselben Ordner wie dieapp.yaml
-Datei ein. 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 in einer Beispiel-App Folgendes:
GOPATH
-Modul:export GOPATH=/home/fred/go.
src1-1.go
-Datei:import "foo/bar"
Die gcloud CLI sucht beim Ausführen oder Bereitstellen der App nach dem
foo/bar
-Paket an diesem Speicherort:/home/fred/go/src/foo/bar
.
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 bereitstellen zu können. Ausführliche Informationen finden Sie unter Anwendung testen und bereitstellen.