Heim >Backend-Entwicklung >Golang >Wie authentifiziert man private Go-Module in Google App Engine Standard mit Go 1.11?

Wie authentifiziert man private Go-Module in Google App Engine Standard mit Go 1.11?

DDD
DDDOriginal
2024-10-29 12:46:031034Durchsuche

 How to Authenticate Private Go Modules on Google App Engine Standard with 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:

  • Der private Modulcode wird nicht mit Google Cloud geteilt, um die Privatsphäre zu wahren.
  • Der Projektcode bleibt von App Engine entkoppelt, was eine einfache Integration mit anderen Plattformen ermöglicht .

Nachteile:

  • Der Ansatz kann komplex werden, wenn private Module von anderen privaten Modulen abhängen.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn