Abhängigkeiten in Go angeben

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

Abhängigkeiten mit Go-Modulen angeben

Wenn Sie Abhängigkeiten von Cloud Run-Funktionen 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 Run-Funktionen 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 Run-Funktionen auch über ein vendor-Verzeichnis angeben. Wenn Ihre Abhängigkeit nicht über einen Abhängigkeitsmanager verfügbar ist oder der Internetzugriff Ihrer Umgebung für Cloud Run-Funktionen 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.