Vous pouvez utiliser n'importe quel package compatible avec linux/amd64 pour des instances exécutées dans l'environnement flexible App Engine. Ces instructions supposent que vous utilisez la commande go get
pour obtenir les packages directement à partir des dépôts acceptés (GitHub, Bitbucket, LaunchPad, etc.).
À partir de la version 1.22 de Go et versions ultérieures :
Vous ne pouvez pas utiliser
go get
en dehors d'un module dans l'ancien modeGOPATH
(GO111MODULE
=off
). Pour en savoir plus, consultez la section Outils.Go vous recommande d'utiliser un fichier
go.mod
pour gérer les dépendances. Pour installer des dépendances lors du déploiement, incluez un fichiergo.mod
dans le même dossier que le fichierapp.yaml
. Pour plus d'informations sur les versions de Go et sur la gestion des dépendances pour les répertoires vendor, consultez la section GOPATH et modules.
Déclarer et gérer les dépendances
Les applications Go sont organisées sous forme de packages qui reflètent la structure de répertoires de vos fichiers sources. Lorsque vous utilisez une instruction d'importation, les chemins relatifs de l'importation sont interprétés. Les chemins d'importation valides sont des chemins d'accès complets au sous-répertoire src
de tous les répertoires spécifiés dans votre GOPATH
.
Prenons l'exemple d'une application dans laquelle vous définissez les éléments suivants:
Module
GOPATH
:export GOPATH=/home/fred/go.
Fichier
src1-1.go
:import "foo/bar"
gcloud CLI recherche le package
foo/bar
à l'emplacement/home/fred/go/src/foo/bar
lorsque vous exécutez ou déployez l'application.
Si vous incluez les sources de votre package dans GOPATH
, veillez à ne pas placer votre code source dans le répertoire de votre application où se trouve le fichier app.yaml
. Si cela se produit, vous pourriez rencontrer des problèmes subtils car un package pourrait alors être chargé deux fois, une première fois pour le chemin relatif par rapport au répertoire d'un service et une seconde fois pour le chemin complet. Pour éviter tout problème de ce type, gcloud CLI analyse à la fois le répertoire de votre application et GOPATH
, puis renvoie une erreur en cas de conflit.
Pour des résultats optimaux, nous vous recommandons de suivre les conseils ci-dessous :
- Créez un répertoire distinct dans le répertoire de votre application pour chaque service.
- Le dossier de chaque service doit contenir un fichier
app.yaml
du service, et un ou plusieurs fichiers.go
. - N'incluez aucun sous-répertoire dans le répertoire d'un service.
- Votre
GOPATH
doit spécifier un répertoire qui se trouve en dehors du répertoire de votre application et doit contenir toutes les dépendances importées par votre application.
Télécharger les packages requis
Vous pouvez utiliser la commande go get
pour télécharger des packages. Par exemple, pour télécharger packagename
à partir de my_repo
sur GitHub :
go get github.com/my_repo/packagename
Déployer l'application sur App Engine
Pour déployer votre application sur App Engine, vous devez déployer les bibliothèques requises par votre application avec votre code d'application. Pour en savoir plus, consultez la page Tester et déployer votre application.