Maison > développement back-end > Golang > le corps du texte

Comment authentifier les modules Go privés dans Google App Engine Standard avec Go 1.11 ?

Linda Hamilton
Libérer: 2024-10-26 07:52:30
original
336 Les gens l'ont consulté

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

Authentification des modules Go privés dans Google App Engine Standard avec Go 1.11

Lors de la mise à jour d'un projet Go App Engine Standard vers des modules Go 1.11, authentification pour les modules privés peut poser un défi. Par défaut, le système de build Google Cloud n'a pas accès aux dépôts privés.

L'erreur :

Lors de la tentative de déploiement d'un projet incluant des modules privés, une erreur similaire à ce qui suit peut se produire :

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
Copier après la connexion

Est-ce possible ?

Oui, il est possible d'authentifier des modules privés dans App Engine Standard à l'aide des modules Go 1.11. . Cependant, les instructions de la documentation de migration sur le déplacement de fichiers vers GOPATH sont trompeuses. Le nouveau système de modules est en effet conçu pour garder le code en dehors du GOPATH.

Solution : Utiliser le remplacement du module

Au lieu de gérer les informations d'identification, une solution préférable consiste à utiliser Go's module remplacer la fonctionnalité. Cela permet au projet local d'utiliser une copie locale du module privé pendant la construction.

Méthode :

  1. Créer un répertoire de construction : Créez un répertoire build dans le répertoire principal du projet.
  2. Liez symboliquement le code source : Liez le répertoire src du projet au répertoire src dans le répertoire build.
  3. Cloner ou copier des modules privés :Clonez ou copiez les modules privés nécessaires dans un sous-répertoire du répertoire des modules dans build.
  4. Créez un fichier go.mod spécifique à GAE : À la racine du répertoire build, créez un nouveau fichier go.mod qui référence le module privé à l'aide de la directive replace. Par exemple :
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
Copier après la connexion

Avantages :

  • Maintient la séparation des préoccupations entre le projet et GAE
  • Facilite la construction du package pour les environnements non-GAE

Inconvénients :

  • Peut devenir complexe si un module privé dépend d'un autre module privé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!