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 :

  1. Ajoutez la directive suivante au bloc d'importation de votre code Go :

    _ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
    
  2. Mettez à jour votre fichier go.mod pour inclure le nouveau package importé :

    go mod tidy
    
  3. Créez un répertoire vendor à partir du contenu de votre fichier go.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 :

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