Linguagens .NET
É possível escrever a função usando diferentes linguagens .NET (C#, Visual Basic ou F#). A tarefa principal é a mesma em todas as linguagens. Você cria uma classe implementando uma das interfaces do Functions Framework:
IHttpFunction
- O
ICloudEvent<T>
genérico - O
ICloudEvent
não genérico
Este documento fornece exemplos de F# e Visual Basic.
Modelos
Para executar os exemplos deste documento, você usará os modelos:
Instale o SDK .NET.
Instale o pacote de modelos:
dotnet new install Google.Cloud.Functions.Templates
Os modelos são fornecidos para os três tipos de funções em C# (padrão), F# e Visual Basic. Ao criar um novo projeto usando um modelo, especifique -lang f#
para criar um projeto F# ou -lang vb
para criar um projeto Visual Basic. Por exemplo, para criar uma nova função sem tipo do CloudEvent para Visual Basic, execute:
dotnet new gcf-untyped-event -lang vb
Exemplos de função HTTP
Você usa funções HTTP para invocar sua função por meio de uma solicitação HTTP(S). Os exemplos a seguir geram a mensagem "Hello World!"
F#
Visual Basic
Arquivos de projeto para exemplos de HTTP
Veja os arquivos de projeto dos exemplos acima:
F#
Visual Basic
Como implantar as funções HTTP
F#
gcloud functions deploy fsharp-helloworld --no-gen2 --entry-point HelloWorldFSharp.Function --runtime dotnet6 --trigger-http --allow-unauthenticated
Visual Basic
gcloud functions deploy vb-helloworld --no-gen2 --entry-point HelloWorldVb.CloudFunction --runtime dotnet6 --trigger-http --allow-unauthenticated
Exemplos do CloudEvent
Use funções do CloudEvent quando quiser que sua função do Cloud Run seja invocada indiretamente em resposta a um evento assíncrono, como uma mensagem em um tópico do Pub/Sub, uma alteração em um bucket do Cloud Storage ou um evento do Firebase.
F#
Visual Basic
Como implantar funções do CloudEvent
F#
gcloud functions deploy fsharp-hello-pubsub --no-gen2 --entry-point HelloPubSubFSharp.Function --runtime dotnet6 --trigger-topic my-topic --allow-unauthenticated
Visual Basic
gcloud functions deploy vb-hello-pubsub --no-gen2 --entry-point HelloPubSubVb.CloudFunction --runtime dotnet6 --trigger-topic my-topic --allow-unauthenticated
Testar os exemplos do CloudEvent
É possível testar os exemplos do CloudEvent da seguinte maneira:
Publique uma mensagem no tópico do Pub/Sub para acionar a função:
gcloud pubsub topics publish my-topic --message Flurry
Veja os registros:
gcloud functions logs read --limit 10
Você verá algo assim, com uma mensagem que inclui o nome publicado no tópico do 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'