Maison  >  Article  >  développement back-end  >  Comment authentifier les modules Go privés dans Google App Engine Standard avec Go 1.11 ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 07:52:30338parcourir

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

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

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!

Déclaration:
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