Spécifier les dépendances en Go
Vous pouvez spécifier vos dépendances de fonctions Cloud Run avec un module Go ou un répertoire vendor
.
Spécifier des dépendances avec les modules Go
Pour spécifier les dépendances Cloud Run Functions avec un module Go, vous devez les répertorier dans un fichier go.mod
.
Lorsque vous déployez votre fonction, Go intègre automatiquement les dépendances dans votre fichier go.mod
.
Pour créer un fichier go.mod
, consultez la page Gérer les dépendances dans Go.
Le Functions Framework est une dépendance requise pour toutes les fonctions. Bien que Cloud Run Functions l'installe en votre nom lors de la création de la fonction, nous vous recommandons de l'inclure en tant que dépendance explicite pour plus de clarté.
Si votre fonction repose sur des dépendances privées, nous vous recommandons de mettre en miroir functions-framework
dans votre registre privé. Incluez la valeur functions-framework
mise en miroir en tant que dépendance à votre fonction pour éviter d'installer le package depuis l'Internet public.
Spécifier des dépendances avec un répertoire vendor
Cloud Run Functions vous permet également d'inclure vos dépendances via un répertoire vendor
.
L'utilisation d'un répertoire est utile si votre dépendance n'est pas disponible via un gestionnaire de dépendances ou si l'accès Internet de votre environnement de fonctions Cloud Run est limité.
La plupart du temps, les répertoires vendor
sont gérés par un gestionnaire de dépendances.
Vous pouvez utiliser le gestionnaire de dépendances de votre choix. Par exemple, vous pouvez utiliser la fonctionnalité "Modules" de Go pour créer un répertoire vendor
à partir de votre fichier go.mod
.
Vous devez inclure le framework des fonctions pour Go dans votre répertoire vendor. Pour utiliser la chaîne d'outils Go, procédez comme suit :
Ajoutez la directive suivante au bloc d'importation de votre code Go :
_ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
Mettez à jour votre fichier
go.mod
pour inclure le nouveau package importé :go mod tidy
Créez un répertoire
vendor
à partir du contenu de votre fichiergo.mod
:go mod vendor
Versions antérieures à Go 1.16
Pour les versions de Go antérieures à la version 1.16, si vous avez un fichier go.mod
et un répertoire vendor
, le répertoire vendor
sera ignoré lors du déploiement de la fonction.
Pour vous assurer que votre répertoire vendor est respecté, utilisez un fichier .gcloudignore
pour éviter d'importer vos fichiers go.mod
et go.sum
:
Créez un fichier
.gcloudignore
à la racine du répertoire de votre projet, avec le contenu suivant :go.mod go.sum # Also ignore Git directories. Delete the following two lines if you want to # upload them. .git .gitignore
Utiliser des dépendances privées
Si les dépendances de votre fonction sont hébergées dans un dépôt qui n'est pas accessible publiquement, vous devez utiliser un répertoire vendor
pour récupérer les dépendances avant de déployer votre fonction. Si vous prévoyez d'utiliser un fichier go.mod
, suivez les instructions ci-dessus pour éviter tout conflit entre le fichier go.mod
et le répertoire vendor
.