Maison > Article > développement back-end > Comment authentifier les modules Go privés avec Google App Engine Standard dans Go 1.11 ?
Authentification des modules Go privés avec Google App Engine Standard dans Go 1.11
Lors de la mise à jour d'un projet App Engine Standard existant pour utiliser les modules Go dans Go 1.11, vous pouvez rencontrer des erreurs lorsque vous essayez de vous authentifier auprès de référentiels privés. Pour résoudre ce problème, nous allons approfondir le problème et proposer une solution.
Le problème
Lors de la tentative de déploiement du projet avec gcloud app déployer, la build échoue avec une erreur indiquant un accès interdit au référentiel privé. En effet, le système Google Cloud Build n'a pas accès aux référentiels privés par défaut.
Solution
Au lieu de gérer une gestion complexe des informations d'identification, il est possible de tirer parti de Go. le module remplace la fonctionnalité pour indiquer à GAE d'utiliser le code local. Voici un aperçu des étapes :
Créez une structure de répertoires similaire à l'exemple fourni, dans laquelle vous séparez le code du service. à partir du code spécifique à GAE.
Créez un fichier go.mod dans le répertoire GAE, en spécifiant les dépendances requises et en utilisant module replace pour pointer vers le code local de votre module privé.
Avant de construire, analysez le go.mod fichier du répertoire de service pour obtenir la version correcte de votre module privé.
Cloner le module privé dans les modules dossier dans le répertoire GAE. En option, vous pouvez également copier le code source du module WIP à des fins de débogage local.
Exemple :
Voici un exemple du fichier go.mod du répertoire GAE :
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 :
Attention :
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!