Langages .NET
Il est possible d'écrire une fonction dans différents langages .NET (C#, Visual Basic ou F#). Commune à tous les langages, la tâche de base consiste à créer une classe mettant en œuvre l'une des interfaces du framework des fonctions :
IHttpFunction
- L'interface générique
ICloudEvent<T>
- L'interface non générique
ICloudEvent
Ce document fournit des exemples pour F# et Visual Basic.
Modèles
Notez que pour exécuter les exemples de ce document, vous utiliserez les modèles :
Installez le SDK .NET.
Installez le package de modèles :
dotnet new install Google.Cloud.Functions.Templates
Des modèles sont fournis pour les trois types de fonctions en C# (par défaut), F# et Visual Basic. Lorsque vous créez un projet à partir d'un modèle, spécifiez -lang f#
pour créer un projet F# ou -lang vb
pour créer un projet Visual Basic. Par exemple, pour créer une fonction CloudEvent sans type pour Visual Basic, exécutez la commande suivante :
dotnet new gcf-untyped-event -lang vb
Exemples de fonctions HTTP
Les fonctions HTTP vous permettent d'appeler votre fonction via une requête HTTP(S). Les exemples suivants génèrent le message "Hello World!"
.
F#
Visual Basic
Fichiers de projet pour les exemples HTTP
Voici les fichiers de projet pour les exemples ci-dessus :
F#
Visual Basic
Déployer les fonctions HTTP
F#
gcloud functions deploy fsharp-helloworld --no-gen2 --entry-point HelloWorldFSharp.Function --runtime dotnet8 --trigger-http --allow-unauthenticated
Visual Basic
gcloud functions deploy vb-helloworld --no-gen2 --entry-point HelloWorldVb.CloudFunction --runtime dotnet8 --trigger-http --allow-unauthenticated
Exemples CloudEvent
Utilisez les fonctions CloudEvent lorsque vous souhaitez que votre fonction Cloud Run soit appelée indirectement en réponse à un événement asynchrone, tel qu'un message sur un sujet Pub/Sub, une modification dans un bucket Cloud Storage ou un événement Firebase.
F#
Visual Basic
Déployer les fonctions CloudEvent
F#
gcloud functions deploy fsharp-hello-pubsub --no-gen2 --entry-point HelloPubSubFSharp.Function --runtime dotnet8 --trigger-topic my-topic --allow-unauthenticated
Visual Basic
gcloud functions deploy vb-hello-pubsub --no-gen2 --entry-point HelloPubSubVb.CloudFunction --runtime dotnet8 --trigger-topic my-topic --allow-unauthenticated
Tester les exemples CloudEvent
Vous pouvez tester les exemples de fonctions CloudEvent comme suit :
Publiez un message sur votre sujet Pub/Sub pour déclencher votre fonction :
gcloud pubsub topics publish my-topic --message Flurry
Examinez les journaux :
gcloud functions logs read --limit 10
Un message semblable au suivant doit s'afficher, contenant le nom que vous avez publié dans le sujet Pub/Sub :
D my-function ... Function execution started
I my-function ... Hello Flurry!
D my-function ... Function execution took 39 ms, finished with status: 'ok'