使用 .NET 创建和部署 HTTP Cloud Functions 函数
本指南将引导您完成使用 .NET 运行时语言 C# 编写 Cloud Functions 函数的过程。Cloud Functions 函数有两种类型:
- HTTP 触发的函数,可通过标准 HTTP 请求调用。
- 事件驱动函数,用于处理来自云基础架构的事件,例如 Cloud Pub/Sub 主题中收到消息或 Cloud Storage 存储分区发生更改。
指南结构
使用 gcloud CLI 创建 Google Cloud 项目
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用 Cloud Functions and Cloud Build API。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用 Cloud Functions and Cloud Build API。
- 安装并初始化 gcloud CLI。
- 更新并安装
gcloud
组件:gcloud components update
- 准备开发环境。
创建函数
本部分介绍了如何从头开始手动创建函数。或者,您也可以使用模板软件包提供的模板。
如需创建函数,请执行以下操作:
在本地系统上为函数代码创建一个目录:
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Linux 或 Mac OS X
mkdir ~/helloworld cd ~/helloworld
创建一个名为
Function.cs
的文件,其中包含以下内容:此示例函数会输出问候语“Hello World!”
指定依赖项
下一步是设置依赖项。您可以在 C# Cloud Functions 函数中设置两种不同类型的依赖项:
- 将 Functions 框架设为可用。这是您在本部分执行的任务。
- 通过依赖项注入在项目文件和代码中将其他库设为可用。如需了解详情,请参阅通过 Functions 启动类进行自定义。
如需将 Functions 框架设为可用,请将目录更改为您在上面创建的 helloworld
目录:
cd ~/helloworld
然后,创建一个名为 HelloWorld.csproj
的文件,其中包含以下内容:
部署函数
如需使用 HTTP 触发器部署函数,请在 helloworld
目录中运行以下命令:
gcloud functions deploy my-first-function --entry-point HelloWorld.Function --runtime dotnet6 --trigger-http --allow-unauthenticated
其中,my-first-function
是在 Google Cloud 控制台中用来标识函数的注册名称,而 --entry-point
用于指定函数的完全限定类名称 (FQN)。
测试已部署的函数
当函数完成部署时,请记下
httpsTrigger.url
属性,或使用以下命令查找该属性:gcloud functions describe my-first-function
该属性应如下所示:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
在浏览器中访问此网址。您应该会看到
Hello World!
消息。
查看日志
使用命令行工具
您可以在 Cloud Logging 界面中查看 Cloud Functions 的日志,也可以通过 Google Cloud CLI 查看。
如需使用 gcloud CLI 查看函数的日志,请使用 logs read
命令,后跟函数名称:
gcloud functions logs read my-first-function
输出应类似于以下内容:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.791 Function execution started D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.958 Function execution took 168 ms, finished with status code: 200 ...
使用日志记录信息中心
您还可以通过 Google Cloud 控制台查看 Cloud Functions 函数的日志。
使用模板软件包
以上部分介绍了如何从头开始手动创建函数。以后,您可能会使用模板创建新的函数。
如需使用模板创建、构建和测试函数,请执行以下操作:
安装 .NET SDK。
安装模板软件包:
dotnet new install Google.Cloud.Functions.Templates
接下来,为您的项目创建一个目录,并使用
dotnet new
创建新的 HTTP 函数:mkdir HelloFunctions cd HelloFunctions dotnet new gcf-http
此命令会在当前目录中创建
HelloFunctions.csproj
和Function.cs
。打开Function.cs
查看代码,并根据需要提供自定义消息。在本地构建函数,如下所示:
dotnet run
服务器运行后,转到
http://localhost:8080
来调用该函数。在控制台中按 Ctrl-C 停止服务器。此函数会显示消息“Hello Functions 框架”。
或者,您也可以从另一个终端窗口使用 curl
向此函数发送请求:
curl localhost:8080
# Output: Hello Functions Framework