Idiomas de .NET
Es posible escribir tu función mediante diferentes lenguajes de .NET (C#, Visual Basic o F#). La tarea principal es la misma en todos los lenguajes: debes crear una clase que implemente una de las interfaces de Functions Framework:
IHttpFunction
ICloudEvent<T>
genéricoICloudEvent
no genérico
En este documento, se proporcionan ejemplos de F# y Visual Basic.
Plantillas
Ten en cuenta que para ejecutar los ejemplos de este documento, usarás las plantillas:
Instala el SDK de .NET.
Instala el paquete de plantillas:
dotnet new install Google.Cloud.Functions.Templates
Las plantillas se proporcionan para los tres tipos de funciones en C# (predeterminado), F# y Visual Basic. Cuando crees un proyecto nuevo a partir de una plantilla, especifica -lang f#
para crear un proyecto de F# o -lang vb
si deseas crear un proyecto de Visual Basic. Por ejemplo, si deseas crear una función nueva de CloudEvent sin tipo de Visual Basic, debes ejecutar lo siguiente:
dotnet new gcf-untyped-event -lang vb
Para ver ejemplos de F# y Visual Basic, consulta Lenguajes de .NET.
Ejemplos de funciones de HTTP
Debes usar funciones de HTTP cuando quieres invocar tu función a través de una solicitud HTTP(S). Los siguientes ejemplos generan el mensaje "Hello World!"
F#
Visual Basic
Archivos de proyecto para ejemplos de HTTP
Estos son los archivos del proyecto de los ejemplos anteriores:
F#
Visual Basic
Implementa las funciones de HTTP
F#
gcloud functions deploy fsharp-helloworld --entry-point HelloWorldFSharp.Function --runtime dotnet6 --trigger-http --allow-unauthenticated
Visual Basic
gcloud functions deploy vb-helloworld --entry-point HelloWorldVb.CloudFunction --runtime dotnet6 --trigger-http --allow-unauthenticated
Ejemplos de CloudEvent
Debes usar funciones de CloudEvent cuando desees que se invoque tu función de Cloud Run Functions de forma indirecta en respuesta a un evento asíncrono, como un mensaje en un tema de Pub/Sub, un cambio en un bucket de Cloud Storage o un evento de Firebase.
F#
Visual Basic
Implementa las funciones de CloudEvent
F#
gcloud functions deploy fsharp-hello-pubsub --entry-point HelloPubSubFSharp.Function --runtime dotnet6 --trigger-topic my-topic --allow-unauthenticated
Visual Basic
gcloud functions deploy vb-hello-pubsub --entry-point HelloPubSubVb.CloudFunction --runtime dotnet6 --trigger-topic my-topic --allow-unauthenticated
Prueba los ejemplos de CloudEvent
Puedes probar los ejemplos de CloudEvent de la siguiente manera:
Publica un mensaje en tu tema de Pub/Sub para activar la función:
gcloud pubsub topics publish my-topic --message Flurry
Consulta los registros:
gcloud functions logs read --limit 10
Deberías ver algo como esto, con un mensaje que incluya el nombre que publicaste en el tema de 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'