函数编写与部署:从代码到上线 本节动手实践:一个边缘函数长什么样、如何管理依赖、如何部署与调用。我们用通用概念描述结构,帮助你建立心智模型。 函数的基本结构 一个边缘函数的核心是一个处理请求的入口:它接收一个 HTTP 请求,处理后返回一个 HTTP 响应。这与 Web 框架中的「路由处理器」非常相似。 三个关键点: 入口:注册一个处理函数,平台在每次请求时调用它。 请求对象:携带方法、头、查询参数、请求体等信息。 响应对象:你构造并返回,包括状态码、头、响应体。 读取请求信息 请求对象提供丰富的信息,常用包括: HTTP 方法:GET / POST / PUT / DELETE,用于区分操作意图。 查询参数:URL 中的参数,如 。 请求头:包括内容类型、自定义头。
本节动手实践:一个边缘函数长什么样、如何管理依赖、如何部署与调用。我们用通用概念描述结构,帮助你建立心智模型。
一个边缘函数的核心是一个处理请求的入口:它接收一个 HTTP 请求,处理后返回一个 HTTP 响应。这与 Web 框架中的「路由处理器」非常相似。
// 概念示意:最简边缘函数 import { serve } from "标准库"; serve(async (request) => { // 1. 解析请求(方法、参数、请求体) const data = await request.json(); // 2. 执行业务逻辑 const result = 处理(data); // 3. 返回响应 return new Response(JSON.stringify({ result }), { headers: { "Content-Type": "application/json" }, }); });
三个关键点:
请求对象提供丰富的信息,常用包括:
?id=xxx。根据这些信息分流逻辑,是函数编写的常见模式。
Deno 的依赖通过 URL 直接导入——在代码顶部用 import 语句从 URL 引入第三方模块,无需单独的依赖清单与安装步骤。例如想用某 HTTP 客户端库,直接 import 它的 URL 即可。
这种方式的好处:
install 步骤,部署时平台自动拉取。注意事项:
函数中的密钥(如第三方 API Key、数据库服务级密钥)不应硬编码,而应通过环境变量注入:
PAYMENT_SECRET)。Deno.env.get("PAYMENT_SECRET"))。这样密钥与代码分离,便于不同环境使用不同密钥,也避免泄露到代码仓库。
部署一个边缘函数的典型流程:
要点:
部署后,函数可被多种方式调用:
健壮的函数需要良好的错误处理:
部署后,你需要观察函数的运行情况:
这些可观测性手段是函数上线后稳定运行的保障。
边缘函数以「处理 HTTP 请求」为核心结构,用 URL 导入依赖、用环境变量管理密钥;本地测试通过后用 CLI 部署,获得可调用的 HTTPS 入口;良好的输入校验、错误处理与日志是生产级函数的必备素质。下一节介绍函数如何被不同方式触发。