Authentifizierung eines privaten Go-Moduls auf Google App Engine Standard mit Go 1.11
In Go 1.11 bietet die Einführung von Modulen eine effizientere Möglichkeit der Verwaltung von Abhängigkeiten. Bei der Verwendung privater Module auf Google App Engine Standard können jedoch Authentifizierungsprobleme auftreten. Dieses Problem wird deutlich, wenn beim Versuch, eine gcloud-App bereitzustellen, der Fehler 403 Forbidden auftritt.
Um dieses Problem zu beheben, wurden herkömmliche Ansätze wie Vendoring oder die Verwendung von Tools zur Abhängigkeitsverwaltung von Drittanbietern (z. B. DEP) eingesetzt. Mit dem neuen Modulsystem sind diese Lösungen jedoch möglicherweise nicht ideal.
Lösung mit Module Replacement
Anstatt sich mit Anmeldeinformationen herumzuschlagen, ist die Verwendung von Gos eine praktikable Lösung Modulersetzungsfunktion, um GAE anzuweisen, lokalen Code zu verwenden. Dieser Ansatz umfasst:
Einrichten der Verzeichnisstruktur:
Organisieren Sie Ihr Projekt mit der folgenden Verzeichnisstruktur:
myService/ |__ src/ | |__ service.go | |__ go.mod |__ build/ |__ gae/ |__ src/ // Symlink to ../../src |__ modules/ // Git ignored |__ app.go |__ go.mod |__ app.yaml
Ändern von GAE go.mod:
Erstellen Sie eine go.mod-Datei im Gae-Verzeichnis und geben Sie die Abhängigkeiten an, einschließlich des lokalen Pfads für Ihr privates Modul mit „Replace“. :
module myServiceGAE require ( bitbucket.org/me/myService v0.0.0 google.golang.org/appengine v1.4.0 ) replace bitbucket.org/me/myService => ./src
Klonen oder Kopieren privater Module:
Klonen oder kopieren Sie zuvor Ihre privaten Module im Modulordner unter dem gae-Verzeichnis Erstellen des Projekts.
Dieser Ansatz ermöglicht es Ihnen, Ihren privaten Modulcode von Ihrem Hauptprojekt getrennt zu halten und gleichzeitig sicherzustellen, dass GAE während der Bereitstellung die richtige Version verwendet.
Vorteile:
Nachteile:
Das obige ist der detaillierte Inhalt vonWie authentifiziert man ein privates Go-Modul in Google App Engine Standard mit Go 1.11?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!