Maison >développement back-end >Golang >Comment authentifier un module Go privé sur la norme Google App Engine à l'aide de Go 1.11 ?

Comment authentifier un module Go privé sur la norme Google App Engine à l'aide de Go 1.11 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 01:03:27771parcourir

How to Authenticate a Private Go Module on Google App Engine Standard Using Go 1.11?

Authentification d'un module Go privé sur Google App Engine Standard à l'aide de Go 1.11

Dans Go 1.11, l'introduction de modules offre un moyen plus efficace de gestion des dépendances. Cependant, lors de l'utilisation de modules privés sur Google App Engine Standard, des problèmes d'authentification peuvent survenir. Ce problème devient évident lorsque vous tentez de déployer une application gcloud et que vous rencontrez une erreur 403 Forbidden.

Pour résoudre ce problème, des approches traditionnelles telles que la vente ou l'utilisation d'outils de gestion des dépendances tiers (par exemple, DEP) ont été utilisées. Cependant, avec le nouveau système de modules, ces solutions peuvent ne pas être idéales.

Solution utilisant le remplacement du module

Au lieu de gérer les informations d'identification, une solution viable consiste à utiliser Go's Le module remplace la fonctionnalité pour demander à GAE d'utiliser le code local. Cette approche implique :

  1. Configuration de la structure de répertoires :

    Organisez votre projet avec la structure de répertoires suivante :

    myService/
    |__ src/
    |    |__ service.go
    |    |__ go.mod
    |__ build/
       |__ gae/
           |__ src/  // Symlink to ../../src
           |__ modules/  // Git ignored
           |__ app.go
           |__ go.mod
           |__ app.yaml
  2. Modification de GAE go.mod :

    Créez un fichier go.mod dans le répertoire gae et spécifiez les dépendances, y compris le chemin local de votre module privé en utilisant replace :

    module myServiceGAE
    
    require (
        bitbucket.org/me/myService v0.0.0
        google.golang.org/appengine v1.4.0
    )
    
    replace bitbucket.org/me/myService => ./src
  3. Clonage ou copie de modules privés :

    Dans le dossier modules sous le répertoire gae, clonez ou copiez vos modules privés avant construire le projet.

Cette approche vous permet de garder le code de votre module privé séparé de votre projet principal, tout en garantissant que GAE utilise la bonne version lors du déploiement.

Avantages :

  • Dissocie le module privé de GAE, permettant un déploiement plus facile sur d'autres plates-formes.
  • Évite le besoin d'outils de gestion des dépendances supplémentaires.

Inconvénients :

  • Devient plus complexe lorsqu'il s'agit de modules privés avec des dépendances sur d'autres modules privés.

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