使用 .NET 创建和部署 HTTP Cloud Run functions 函数(第 1 代)
本指南将引导您完成使用 .NET 运行时语言 C# 编写 Cloud Run functions 函数的过程。Cloud Run functions 有两种类型:
- HTTP 触发的函数,可通过标准 HTTP 请求调用。
- 事件驱动型函数,用于处理来自云基础设施的事件,例如 Pub/Sub 主题中收到消息或 Cloud Storage 存储桶发生更改。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
- 安装并初始化 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 Run functions 函数中设置两种不同类型的依赖项:
- 将 Functions 框架设为可用。这是您在本部分执行的任务。
- 通过依赖项注入在项目文件和代码中将其他库设为可用。如需了解详情,请参阅通过 Functions 启动类进行自定义。
如需将 Functions 框架设为可用,请将目录更改为您在上面创建的 helloworld
目录:
cd ~/helloworld
然后,创建一个名为 HelloWorld.csproj
的文件,其中包含以下内容:
部署该函数
如需使用 HTTP 触发器部署函数,请在 helloworld
目录中运行以下命令:
gcloud functions deploy --no-gen2 my-first-function --entry-point HelloWorld.Function --runtime dotnet8 --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!
消息。
查看日志
您可以使用 Google Cloud CLI 和 Cloud Logging 界面查看 Cloud Run functions 的日志。
使用命令行工具
如需使用 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 ...
使用 Logging 信息中心
您还可以通过 Google Cloud 控制台查看 Cloud Run 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