Votre fonction Cloud Run s'exécute dans un environnement composé d'une version de système d'exploitation avec des packages complémentaires, d'une compatibilité avec les langages et de la bibliothèque du framework de fonctions Go compatible avec votre fonction et qui l'appelle. Cet environnement est identifié par la version de langage et est appelé ID d'exécution.
Préparation de la fonction
Vous pouvez préparer une fonction directement depuis la console Google Cloud, ou l'écrire sur votre ordinateur local et l'importer. Pour préparer votre machine locale au développement Go, consultez la section Configurer un environnement de développement Go.
Environnements d'exécution et images de base Go compatibles
Environnement d'exécution | ID d'exécution | Piles | Image de base de l'environnement d'exécution |
---|---|---|---|
Go 1.23 (bêta uniquement) |
go123 |
|
|
Go 1.22 | go122 |
|
|
Go 1.21 | go121 |
|
|
Go 1.20 | go120 |
|
|
Go 1.19 | go119 |
|
|
Go 1.18 | go118 |
|
|
Go 1.16 | go116 | google-18-full | google-18-full/go116 |
Go 1.13 | go113 | google-18-full | google-18-full/go113 |
Go 1.11 | go111 | Hors service | Hors service |
Sélectionner votre environnement d'exécution
Vous pouvez sélectionner l'un des environnements d'exécution Go compatibles pour votre fonction lors du déploiement.
Vous pouvez sélectionner une version d'exécution à l'aide de la console Google Cloud ou de la gcloud CLI. Cliquez sur l'onglet pour obtenir des instructions concernant l'utilisation de l'outil de votre choix:
gcloud
Spécifiez l'image de base Go pour votre fonction à l'aide de l'option --base-image
lorsque vous déployez votre fonction. Exemple :
gcloud beta run deploy FUNCTION \
--source . \
--function FUNCTION_ENTRYPOINT \
--base-image go122
Remplacez :
FUNCTION par le nom de la fonction que vous déployez. Vous pouvez omettre ce paramètre, mais dans ce cas le nom vous sera demandé.
FUNCTION_ENTRYPOINT par le point d'entrée de votre fonction dans votre code source. Il s'agit du code exécuté par Cloud Run lors de l'exécution de votre fonction. La valeur de cette option doit être un nom de fonction ou un nom de classe complet qui existe dans votre code source.
Pour obtenir des instructions détaillées sur le déploiement d'une fonction à l'aide de la CLI gcloud, consultez Déployer des fonctions dans Cloud Run.
Console
Vous pouvez sélectionner une version d'environnement d'exécution lorsque vous créez ou mettez à jour une fonction Cloud Run dans la console Google Cloud. Pour obtenir des instructions détaillées sur le déploiement d'une fonction, consultez Déployer des fonctions dans Cloud Run.
Pour sélectionner un environnement d'exécution dans la console Google Cloud lorsque vous créez une fonction, procédez comme suit:
Dans la console Google Cloud, accédez à la page Cloud Run :
Cliquez sur Écrire une fonction.
Dans la liste Environnement d'exécution, sélectionnez une version d'environnement d'exécution Go.
Cliquez sur Créer, puis attendez que Cloud Run crée le service à l'aide d'une révision d'espace réservé.
La console vous redirigera vers l'onglet Source, où vous pourrez voir le code source de votre fonction. Cliquez sur Enregistrer et redéployer.
Pour obtenir des instructions détaillées sur la mise à jour de la version d'exécution après le déploiement de votre fonction, consultez la section Redéployer le nouveau code source.
Structure du code source
Pour que Cloud Run Functions trouve la définition de votre fonction, votre code source doit respecter une structure spécifique. Pour en savoir plus, consultez Écrire des fonctions Cloud Run.
Spécifier des dépendances
Les fonctions Cloud Run dans Go doivent fournir toutes leurs dépendances avec des modules Go et un fichier go.mod
, ou avec un répertoire vendor
. Pour en savoir plus, consultez la page Spécifier des dépendances en Go.
Variables d'environnement
Votre environnement d'exécution Go définit automatiquement certaines variables d'environnement pour que votre fonction puisse les utiliser si nécessaire. Pour en savoir plus, consultez la section Configurer des variables d'environnement.
Type : Context
Le package context
de Go définit le type de Context
, qui contient des échéances, des signaux d'annulation et d'autres valeurs couvertes par les requêtes au-delà des limites de l'API et entre les processus.
Le code suivant illustre un exemple d'accès contextuel par un client Pub/Sub :