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

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 03:59:27651parcourir

How to Authenticate Private Go Modules with Google App Engine Standard in 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 :

  1. Structure des répertoires :

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.

  1. Modules Go :

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é.

  1. Analyser le module Go :

Avant de construire, analysez le go.mod fichier du répertoire de service pour obtenir la version correcte de votre module privé.

  1. Cloner les modules privés :

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 :

  • Dissocie le package de services de toute connaissance GAE, le rendant réutilisable en dehors de GAE.
  • Simplifie la dépendance processus de gestion en utilisant les modules Go.

Attention :

  • La gestion des dépendances au sein des modules privés peut devenir complexe si un module privé s'appuie sur un autre.

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