Abhängigkeiten in Go angeben

Sie können Abhängigkeiten Ihrer Cloud Functions-Funktion entweder mit einem Go-Modul oder mit einem vendor-Verzeichnis festlegen.

Abhängigkeiten mit Go-Modulen angeben

Wenn Sie Cloud Functions-Abhängigkeiten mit einem Go-Modul angeben möchten, listen Sie diese in einer go.mod-Datei auf. Wenn Sie die Funktion bereitstellen, fügt Go die Abhängigkeiten automatisch in Ihre go.mod-Datei ein.

Informationen zum Erstellen einer go.mod-Datei finden Sie unter Abhängigkeiten in Go verwalten.

Das Functions Framework ist eine erforderliche Abhängigkeit für alle Funktionen. Obwohl Cloud Functions sie bei der Erstellung der Funktion für Sie installiert, empfehlen wir, sie zur Klarstellung hinzuzufügen.

Wenn Ihre Funktion private Abhängigkeiten benötigt, sollten Sie functions-framework in Ihre private Registry spiegeln. Fügen Sie die gespiegelte functions-framework als Abhängigkeit zu Ihrer Funktion hinzu, um die Installation des Pakets aus dem öffentlichen Internet zu vermeiden.

Abhängigkeiten mit einem vendor-Verzeichnis angeben

Sie können Abhängigkeiten in Cloud Functions auch über ein vendor-Verzeichnis angeben. Wenn Ihre Abhängigkeit nicht über einen Abhängigkeitsmanager verfügbar ist oder der Internetzugriff Ihrer Cloud Functions-Umgebung eingeschränkt ist, erweist sich die Verwendung eines Vendoring-Verzeichnisses als hilfreich.

Normalerweise werden vendor-Verzeichnisse mit einem Abhängigkeitsmanager verwaltet. Sie können einen beliebigen Abhängigkeitsmanager verwenden. So können Sie beispielsweise über die Funktionalität der Go-Module aus Ihrer go.mod-Datei ein vendor-Verzeichnis erstellen.

Sie müssen das Functions Framework für Go in Ihr Anbieterverzeichnis aufnehmen. So verwenden Sie die Go-Toolchain:

  1. Fügen Sie dem Importblock Ihres Go-Codes die folgende Anweisung hinzu:

    _ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
    
  2. Aktualisieren Sie die Datei go.mod, um das neue importierte Paket aufzunehmen:

    go mod tidy
    
  3. Erstellen Sie mithilfe des Inhalts Ihrer go.mod-Datei ein Verzeichnis vendor:

    go mod vendor
    

Go-Versionen vor 1.16

Bei Versionen von Go vor Version 1.16 wird das Verzeichnis vendor ignoriert, wenn Sie eine go.mod-Datei und ein vendor-Verzeichnis haben. Mit einer .gcloudignore-Datei vermeiden Sie das Hochladen der go.mod- und go.sum-Dateien, damit Ihr Anbieterverzeichnis eingehalten wird:

  1. Erstellen Sie im Stammverzeichnis Ihres Projektverzeichnisses eine .gcloudignore-Datei mit folgendem Inhalt:

    go.mod
    go.sum
    
    # Also ignore Git directories. Delete the following two lines if you want to
    # upload them.
    .git
    .gitignore
    

Private Abhängigkeiten verwenden

Wenn die Abhängigkeiten Ihrer Funktion in einem nicht öffentlich zugänglichen Repository gehostet werden, müssen Sie ein vendor-Verzeichnis verwenden, um Ihre Abhängigkeiten vor der Bereitstellung der Funktion abzurufen. Wenn Sie vorhaben, eine go.mod-Datei zu verwenden, sollten Sie die obigen Hinweise beachten, um potenzielle Konflikte zwischen der go.mod-Datei und dem vendor-Verzeichnis zu vermeiden.