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

Wie authentifizieren Sie private Go-Module in Google App Engine Standard mit Go 1.11?

Linda Hamilton
Linda HamiltonOriginal
2024-10-26 07:52:30417Durchsuche

How to Authenticate Private Go Modules in Google App Engine Standard with Go 1.11?

Authentifizierung privater Go-Module in Google App Engine Standard mit Go 1.11

Beim Aktualisieren eines Go App Engine Standard-Projekts auf Go 1.11-Module erfolgt die Authentifizierung für private Module kann eine Herausforderung darstellen. Standardmäßig hat das Google Cloud-Build-System keinen Zugriff auf private Repositorys.

Der Fehler:

Beim Versuch, ein Projekt bereitzustellen, das private Module enthält, tritt ein Fehler auf Es kann Folgendes auftreten:

ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build <GUI> 
status: FAILURE.
Build error details: go: bitbucket.org/[email protected]: 
https://api.bitbucket.org/2.0/repositories/myPrivateRepo?fields=scm: 
403 Forbidden

Kann das gemacht werden?

Ja, es ist möglich, private Module in App Engine Standard mithilfe von Go 1.11-Modulen zu authentifizieren . Allerdings sind die Anleitungen der Migrationsdokumentation zum Verschieben von Dateien in den GOPATH irreführend. Das neue Modulsystem ist in der Tat darauf ausgelegt, Code außerhalb des GOPATH zu halten.

Lösung: Verwenden von Module Replacement

Anstatt Anmeldeinformationen zu verwalten, ist die Verwendung von Gos eine vorzuziehende Lösung Modulaustauschfunktionalität. Dadurch kann das lokale Projekt während des Builds eine lokale Kopie des privaten Moduls verwenden.

Methode:

  1. Erstellen Sie ein Build-Verzeichnis: Erstellen Sie ein Build-Verzeichnis im Hauptprojektverzeichnis.
  2. Symlinken Sie den Quellcode: Verknüpfen Sie das src-Verzeichnis des Projekts mit dem src-Verzeichnis im Build-Verzeichnis.
  3. Private Module klonen oder kopieren:Klonen oder kopieren Sie die erforderlichen privaten Module in ein Unterverzeichnis des Modulverzeichnisses innerhalb von Build.
  4. Erstellen Sie eine GAE-spezifische go.mod-Datei: Erstellen Sie im Stammverzeichnis des Build-Verzeichnisses eine neue go.mod-Datei, die mithilfe der Anweisung „replace“ auf das private Modul verweist. Zum Beispiel:
module myServiceGAE

require (
    bitbucket.org/me/myService v0.0.0
    google.golang.org/appengine v1.4.0
)

replace bitbucket.org/me/myService => ./src
replace bitbucket.org/me/myModule => ./modules/utils

Vorteile:

  • Behält die Trennung der Belange zwischen Projekt und GAE bei
  • Erleichtert den Aufbau Paket für Nicht-GAE-Umgebungen

Nachteile:

  • Kann komplex werden, wenn ein privates Modul von einem anderen privaten Modul abhängt

Das obige ist der detaillierte Inhalt vonWie authentifizieren Sie 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