Utiliser les bibliothèques Go

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 référentiels acceptés (GitHub, Bitbucket, LaunchPad et autres).

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 srcde tous les répertoires spécifiés dans votre GOPATH.

Par exemple, si GOPATH est défini comme suit :

export GOPATH=/home/fred/go

Le fichier src1-1.go du répertoire de l'exemple d'application contient l'instruction d'importation suivante :

import "foo/bar"

gcloud CLI recherchera alors le paquet "foo/bar" à l'emplacement suivant lors de l'exécution ou du déploiement de l'application :

/home/fred/go/src/foo/bar

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 ou l'un de ses sous-répertoires. 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 sur App Engine

Pour déployer votre application sur App Engine, vous devez déployer les bibliothèques requises par votre application, ainsi que le code de cette dernière. Pour plus d'informations, consultez la section Déployer votre application.