快速入门:创建和部署 .NET Cloud Functions 函数

创建和部署 .NET Cloud Functions 函数

Cloud Functions 是一种用于构建和连接云服务的无服务器执行环境。借助 Cloud Functions,您可以编写单一用途的简单函数,并将这些函数关联到您的云基础架构和服务发出的事件。当在外部收到 HTTP 请求或所监控的事件发生时,您的函数就会被触发。

了解如何使用 Cloud Console 创建和部署 .NET Core 3.1 Cloud Functions 函数。


如需在 Cloud Console 中直接获取有关此任务的分步指导,请点击操作演示

操作演示


以下部分将引导您完成与点击操作演示相同的步骤。

当此 C# 函数被 HTTP 请求触发时,它会输出一条消息:

using Google.Cloud.Functions.Framework;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System.IO;
using System.Text.Json;
using System.Threading.Tasks;

namespace SimpleHttpFunction
{
    public class Function : IHttpFunction
    {
        private readonly ILogger _logger;

        public Function(ILogger<Function> logger) =>
            _logger = logger;

        public async Task HandleAsync(HttpContext context)
        {
            HttpRequest request = context.Request;
            // Check URL parameters for "message" field
            string message = request.Query["message"];

            // If there's a body, parse it as JSON and check for "message" field.
            using TextReader reader = new StreamReader(request.Body);
            string text = await reader.ReadToEndAsync();
            if (text.Length > 0)
            {
                try
                {
                    JsonElement json = JsonSerializer.Deserialize<JsonElement>(text);
                    if (json.TryGetProperty("message", out JsonElement messageElement) &&
                        messageElement.ValueKind == JsonValueKind.String)
                    {
                        message = messageElement.GetString();
                    }
                }
                catch (JsonException parseException)
                {
                    _logger.LogError(parseException, "Error parsing JSON request");
                }
            }

            await context.Response.WriteAsync(message ?? "Hello World!");
        }
    }
}

准备工作

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Functions and Cloud Build APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Functions and Cloud Build APIs.

    Enable the APIs

创建函数

  1. 在 Cloud Console 中打开 Cloud Functions 概览页面:

    转到 Cloud Functions 概览页面

    请务必选择启用了 Cloud Functions 的项目。

  2. 点击创建函数

  3. 指定函数名称。

  4. 触发器字段中,选择 HTTP

  5. 身份验证字段中,选择允许未通过身份验证的调用

  6. 点击保存以保存您的更改,然后点击下一步

  7. 源代码字段中,选择內嵌编辑器。在本练习中,您将使用编辑器中提供的默认函数。

  8. 使用运行时下拉列表选择 .NET Core 3.1 运行时。

部署函数

  1. 点击页面底部的部署

  2. 点击部署后,Cloud Console 将重定向到“Cloud Functions 概览”页面。

    在部署函数时,函数旁边会显示一个小型旋转图标。部署完成后,旋转图标会变为绿色对勾标记:

    显示函数部署过程的屏幕截图

测试函数

  1. 显示您的函数对应的菜单,然后点击测试函数

    显示函数测试过程的屏幕截图

  2. 在测试页面上,点击测试函数

    输出屏幕会显示文本 "Hello World!"

  3. 现在更改此消息。在触发事件字段中,输入文本 {"message":"Hello, YOUR_NAME!"}(将 YOUR_NAME 替换为一个名字),然后点击测试函数

    例如,假设您输入的名字是“Rowan”。在输出字段中,您会看到消息 Hello, Rowan!

    日志字段中,如果状态码为 200,则表示函数已成功执行。

    显示代码为 200(表示函数成功执行)的日志字段的屏幕截图

查看日志

检查日志以通过日志历史记录了解您的操作:

  • 返回 Cloud Functions 的“概览”页面,显示您的函数对应的菜单,然后点击查看日志

此时将显示您的日志历史记录。

显示代码为 200(表示函数成功执行)的日志字段的屏幕截图

后续步骤