.NET 语言
您可以使用不同的 .NET 语言(C#、Visual Basic 或 F#)编写函数。所有语言的核心任务都相同 - 您创建一个实现某个 Functions 框架接口的类:
本文档提供了 F# 和 Visual Basic 示例。
模板
请注意,如需运行本文档中的示例,您将使用模板:
安装 .NET SDK。
安装模板软件包:
dotnet new install Google.Cloud.Functions.Templates
为 C#(默认)、F# 和 Visual Basic 三种类型的函数提供了模板。通过模板创建新项目时,指定 -lang f#
以创建 F# 项目,或指定 -lang vb
以创建 Visual Basic 项目。例如,如需为 Visual Basic 创建新的无类型 CloudEvent 函数,您需要运行以下命令:
dotnet new gcf-untyped-event -lang vb
HTTP 函数示例
如果要通过 HTTP(S) 请求调用您的函数,请使用 HTTP 函数。以下示例会输出 "Hello World!"
消息。
F#
Visual Basic
用于 HTTP 示例的项目文件
以下是用于上述示例的项目文件:
F#
Visual Basic
部署 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
CloudEvent 示例
如果您要在响应异步事件(例如 Pub/Sub 主题中收到消息、Cloud Storage 存储桶发生更改或 Firebase 事件)时间接调用 Cloud Run functions 函数,则可以使用 CloudEvent 函数。
F#
Visual Basic
部署 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
测试 CloudEvent 示例
您可以按如下方式测试 CloudEvent 示例:
向 Pub/Sub 主题发布消息以触发您的函数:
gcloud pubsub topics publish my-topic --message Flurry
查看日志:
gcloud functions logs read --limit 10
您应该会看到类似这样的内容,其中的一条消息包含您发布到 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'