自托管函数
基于Deno运行时的Web服务器,能够运行JavaScript、TypeScript和WASM服务。
您可以用它来:
- 本地测试和自托管Supabase的边缘函数(或任何Deno边缘函数)
- 作为可编程HTTP代理:可以拦截/路由HTTP请求
测试版
自托管的边缘函数目前处于测试阶段。API/配置选项可能会有破坏性变更。
如何在本地运行
1./run.sh start --main-service /path/to/supabase/functions -p 9000
使用Docker运行:
12docker build -t edge-runtime .docker run -it --rm -p 9000:9000 -v /path/to/supabase/functions:/usr/services supabase/edge-runtime start --main-service /usr/services
如何更新到新版Deno
- 选择要升级的Deno版本并访问其在GitHub上的标签(例如:https://github.com/denoland/deno/blob/v1.30.3/Cargo.toml)
- 打开本仓库根目录下的
Cargo.toml
文件,修改所有deno_*
模块以匹配所选Deno版本的标签。
在 Fly.io 上自托管边缘函数
我们准备了一个演示,展示如何在 Fly.io 上自托管边缘函数(您也可以使用其他提供商如 Digital Ocean 或 AWS)。
要自行尝试:
- 注册 Fly.io 账号并安装 flyctl
- 将演示仓库克隆到您的机器 - https://github.com/supabase/self-hosted-edge-functions-demo
- 将您的边缘函数复制到演示仓库的
./functions
目录中 - 更新 Dockerfile 以拉取最新的 edge-runtime 镜像(查看 releases)
- [可选] 编辑
./functions/main/index.ts
,添加其他请求预处理逻辑(例如,您可以启用 JWT 验证、处理 CORS 请求) - 运行
fly launch
创建一个新应用来托管您的边缘函数 - 通过访问以下地址使用您的边缘函数:
https://{your-app-name}.fly.dev/{your-function-name}
您可以通过访问 Fly.io 仪表板 > 您的应用 > 指标 来查看边缘运行时的日志。此外,您可以通过运行 fly regions add [REGION]
从多个区域提供 edge-runtime 服务。