Heim >Backend-Entwicklung >Golang >Wie authentifiziert man private Go-Module in Google App Engine Standard mit Go 1.11?
Authentifizierung eines privaten Go-Moduls auf Google App Engine Standard mit Go 1.11
Beim Upgrade auf das Modulsystem von Go 1.11 für eine Go-App Bei einem Engine-Standardprojekt kann die Authentifizierung privater Module eine Herausforderung darstellen. Wenn Sie der Migrationsdokumentation folgen, kann beim Versuch, das Projekt bereitzustellen, der Fehler „403 Forbidden“ auftreten.
Der Fehler
Der Fehler rührt vom Google Cloud Build-System her Sie haben keinen Zugriff auf das private Repository, das das Modul hostet. Das Cloud-Build-System erfordert Anmeldeinformationen, um während der Bereitstellung auf das Repository zuzugreifen. Diese Anmeldeinformationen werden jedoch im aktuellen Setup nicht bereitgestellt.
Lösung
Um dieses Problem zu beheben, können Sie Folgendes tun Nutzen Sie die Modul-Ersetzungsfunktion von Go. Dadurch können Sie das Cloud-Build-System so konfigurieren, dass eine lokale Kopie des privaten Moduls verwendet wird, anstatt es aus dem Repository abzurufen.
Verzeichnisstruktur
Erstellen Sie ein dediziertes Verzeichnis Struktur für diesen Ansatz:
myService/ src/ service.go # contains run() function for routers and other setups go.mod # depends on private and external modules ... # other source files build/ gae/ src/ # symlink to ../../src modules/ # stores cloned or locally modified private modules app.go # contains main() to call service.run() and appEngine.Main() go.mod # includes main() and required modules app.yaml
Konfiguration
Fügen Sie in der Datei myService/gae/go.mod die folgende Konfiguration hinzu:
module myServiceGAE require ( bitbucket.org/me/myService v0.0.0 google.golang.org/appengine v1.4.0 ) replace bitbucket.org/me/myService => ./src # Optionally replace other private modules replace bitbucket.org/me/myModule => ./modules/utils
Diese Konfiguration weist das Cloud-Build-System an, die lokale Kopie von myService aus dem src-Verzeichnis zu verwenden. Die Ersetzen-Direktive fungiert wie ein Pseudo-Anbieter und stellt sicher, dass das Build-System die lokale Version verwendet, anstatt sie aus dem Repository abzurufen.
Vor- und Nachteile
Vorteile:
Nachteile:
Fazit
Durch die Verwendung von Modulersetzung und einer geänderten Verzeichnisstruktur können Sie private Module auf Google App Engine Standard mit Go 1.11 erfolgreich authentifizieren. Dieser Ansatz bietet sowohl Sicherheit als auch Flexibilität und ermöglicht die nahtlose Integration privater Module in Ihr Projekt.
Das obige ist der detaillierte Inhalt vonWie authentifiziert man private Go-Module in Google App Engine Standard mit Go 1.11?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!