Les applications exécutées dans l'environnement d'exécution standard Go 1.11 peuvent utiliser n'importe quel package compatible avec Linux/AMD64.
Utiliser les modules Go
Nous vous recommandons d'utiliser les modules Go pour gérer les dépendances dans votre application Go. Toutefois, vous pouvez continuer à utiliser l'ancien mode GOPATH si vous n'êtes pas prêt à migrer vers les modules Go.
Lorsque vous déployez votre application, App Engine exécute la commande go build pour créer votre application et copier le comportement de Go. Pour vous assurer que votre application utilise le mode compatible avec les modules, procédez comme suit dans votre environnement de développement :
- Créez le fichier - go.modde votre module dans le même répertoire que votre fichier- app.yaml. App Engine recherche le répertoire actuel, puis les répertoires parents successifs jusqu'à ce qu'il trouve un fichier- go.mod.- Si App Engine ne trouve pas de fichier - go.mod, il suit le mode GOPATH.
- Si vous définissez la variable d'environnement - GO111MODULE, assurez-vous que sa valeur active le mode compatible avec les modules. Lorsque vous déployez votre application, App Engine vérifie la présence de- GO111MODULEdans votre environnement et copie le comportement de Go. App Engine n'applique le paramètre de la variable- GO111MODULEque si vous avez inclus un fichier- go.modpour votre application.
- Ne recherchez pas le répertoire de votre application dans ou sous $GOPATH/src. Si votre application se trouve dans l'arborescence de répertoires$GOPATH/src, App Engine suit le mode GOPATH même si vous avez défini un fichiergo.modpour votre application.
Utiliser des dépendances privées
App Engine ne peut pas télécharger vos dépendances privées pendant le processus de compilation. Vous devez donc les inclure avec votre code d'application lors du déploiement.
Vous devez utiliser la directive replace dans votre fichier go.mod pour déclarer des dépendances privées. L'exemple suivant suppose que votre application se trouve dans le répertoire /myapp/ :
- Accédez au répertoire de votre application : - cd /myapp
- Créez un répertoire contenant vos dépendances privées : - mkdir private- Assurez-vous que votre dépendance privée se trouve dans le répertoire - private. Une approche consiste à créer un lien symbolique :- mkdir private/private.example.com ln -s /path/to/private.example.com/foo private/private.example.com/foo
- Mettez à jour votre fichier - go.modpour utiliser la directive- replaceafin d'utiliser le répertoire- privatepour votre dépendance :- go mod edit -replace=private.example.com/foo=./private/private.example.com/foo- Votre fichier - go.moddevrait maintenant se présenter comme suit :- Fichier- go.modfinal- module private.example.com/myapp require private.example.com/foo v1.2.3 replace private.example.com/foo => ./private/private.example.com/foo- Fichier- go.modd'origine- module private.example.com/myapp require private.example.com/foo v1.2.3
- Ne modifiez pas la manière dont vous importez et utilisez votre package privé. Votre instruction - importdoit se présenter comme suit :- import "private.example.com/foo"
- Incluez votre dépendance privée dans votre déploiement en déployant votre application : - gcloud app deploy