尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Supabase Edge Functions 编写与部署完整指南:Deno 运行时上的无服务器利器

Supabase Edge Functions 编写与部署完整指南:Deno 运行时上的无服务器利器 Supabase Edge Functions 编写与部署完整指南Deno 运行时上的无服务器利器【免费下载链接】supabaseThe Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.项目地址: https://gitcode.com/GitHub_Trending/supa/supabaseSupabase Edge Functions 是基于 Deno 运行时编写、面向 Web 的无服务器函数服务帮你把后端逻辑部署到全球边缘节点。作为 Postgres 开发平台的核心能力之一它让你用 TypeScript 就能快速搭建低延迟的 API 端点、Webhook 接收器和 AI 集成服务无需管理任何服务器。本文将从零带你完成一个 Edge Function 的创建、本地调试与全球部署。什么是 Supabase Edge Functions简单来说Edge Functions 就是一组运行在全球边缘节点上的 TypeScript 函数。你的代码会被分发到离用户最近的区域执行带来极低的网络延迟。它为什么好用核心在于选择了 Deno 作为运行时的设计取舍✅开源且可移植函数既能在本地运行也能跑在任何 Deno 兼容平台上✅TypeScript 优先无需编译步骤原生支持类型检查还支持 WASM✅全球分发部署一次自动覆盖全球边缘位置✅与 Supabase 生态无缝集成可直接调用 Auth、Postgres、Storage 等全部能力 官方文档对请求流程的概括请求先进入边缘网关relay完成路由与 JWT 鉴权再由边缘运行时Edge Runtime执行你的函数最后响应经网关返回客户端全程记录日志与指标。工作流程一图看懂一个 Edge Function 的完整生命周期可以概括为写代码 → 本地调试 → 一键部署 → 全球调用创建函数用 CLI 脚手架生成模板或在控制台直接用 AI Assistant 生成本地运行通过 Docker 启动本地 Supabase 环境支持热重载部署上线一条命令把函数分发到全球边缘节点调用函数在你的 App 中通过 HTTP 请求或 Supabase SDK 调用关于每个阶段的细节可参考官方快速上手文档functions 快速开始、部署指南。5 分钟创建第一个函数本地开发环境搭建第一步初始化项目并生成函数安装 Supabase CLI 后在项目目录执行两个命令即可supabase init # 初始化项目生成 supabase/ 目录 supabase functions new hello-world # 生成函数模板这条命令会在supabase/functions/hello-world/index.ts生成一个带鉴权处理的基础模板接收一个 JSON 请求体返回问候消息。模板默认使用 Supabase Auth 保护端点你也可以用--auth标志调整鉴权策略。第二步启动本地运行时supabase start # 启动本地全套 Supabase 服务需 Docker supabase functions serve hello-world # 热重载运行你的函数本地函数运行在http://localhost:54321/functions/v1/hello-world保存代码即自动热重载——这是它比传统后端开发体验轻快的关键。第三步发送测试请求在控制台打开浏览器编辑器也可在本地调试用 curl 或控制台的测试面板发一个 POST 请求带上 Publishable Key 和{name:Functions}作为请求体你会收到{ message: Hello Functions! }在控制台直接编写与测试免 CLI 方案如果你更喜欢纯图形界面Supabase Dashboard 提供了完整的在线开发体验。打开控制台后点击 Deploy a new function你会看到三个入口Via Editor浏览器内编写部署、Via AI Assistant让 AI 帮你写、Via CLI本地开发 版本控制。编辑器内置了模板库——从 Simple Hello World 到 Supabase Database Access、Storage 上传、Express Server 等选一个模板改几行点 Deploy function 即可上线。测试同样不用离开浏览器测试面板可以设置 HTTP 方法、请求体、请求头并选择以 service role 等身份发起调用响应状态码如 200和返回 JSON 一目了然体验类似 Postman。 如果你不确定怎么写AI Assistant 可以直接根据自然语言生成完整函数。例如输入创建一个处理 Stripe 支付的 Edge Function它会生成包含 Stripe SDK 调用、错误处理的完整代码点击 Deploy 即可部署。最快部署方法一条命令上线全球本地调试满意后把函数部署到生产环境只需三步supabase login # 首次使用需登录认证 supabase link --project-ref your-project-id # 关联远程项目 supabase functions deploy hello-world # 部署到全球边缘网络部署成功后你的函数立刻在全球可访问https://project-id.supabase.co/functions/v1/hello-world。几个实用细节批量部署不带函数名执行supabase functions deploy会部署functions目录下所有函数无 Docker 环境CLI 会自动回退到 API 方式部署或用--use-api显式指定CI/CD 自动化配合 GitHub Actions、GitLab CI 或 Bitbucket Pipelines代码合并到主分支即自动部署官方文档提供了完整配置示例见部署与 CI/CD 指南逐函数配置每个函数的 JWT 校验等选项可写在config.toml中保证各环境行为一致在应用中调用已部署的函数用 Supabase JS 客户端一行搞定const { data, error } await supabase.functions.invoke(hello-world, { body: { name: JavaScript }, })安全管理密钥Secrets 最佳实践无服务器函数调用第三方 API 时绝不能把密钥硬编码在代码里。Supabase 为 Edge Functions 内置了密钥管理默认密钥SUPABASE_URL、SUPABASE_DB_URL、SUPABASE_PUBLISHABLE_KEYS等开箱即用自定义密钥在控制台创建或通过 CLI 设置supabase secrets set KEYvalue读取方式函数内用Deno.env.get(KEY)安全访问本地开发时密钥放在supabase/functions/.env文件中supabase start时自动加载记得把它加进.gitignore永远不要提交到版本库。详细规范见环境变量文档。⚠️ 注意service_role等秘密密钥可绕过行级安全策略RLS只能用在 Edge Functions 这类服务端环境严禁暴露到浏览器。排查问题日志与调试技巧函数上线后控制台提供完整的可观测性面板在 Functions 详情页的Invocations标签下你可以看到每次调用的状态码、时间戳、请求体与部署版本还有按时间分布的调用图表——排查线上问题基本靠它。更深入的调试可以直接用 Chrome DevTools本地supabase functions serve运行时用 DevTools 附加到 Deno 进程即可设置断点、查看作用域变量和调试前端一样顺手。更多排障思路见调试指南与错误处理文档。适合什么场景以及一个避坑提醒推荐场景来自官方指南场景说明低延迟 HTTP 端点公开或需鉴权的 APIWebhook 接收Stripe 支付、GitHub 事件等AI 集成编排 OpenAI 等外部 LLM 调用邮件与消息机器人Slack、Discord、Telegram Bot图片生成Open Graph 图片、按需处理⚠️ 一个重要的避坑提醒Edge Functions 可能存在冷启动且适合短生命周期、幂等的操作。如果你有长时间运行的重任务如大批量数据处理不要塞进 Edge Function而应交给后台任务处理。另外Postgres 在边缘环境下应视为远程连接池服务——使用连接池或服务端驱动参考连接 Postgres 指南。总结从本地到全球的完整路线回顾一下这条无服务器开发路线创建supabase functions new或控制台 AI Assistant 生成函数开发supabase functions serve本地热重载调试配置Secrets 管理第三方密钥Deno.env.get()安全读取部署supabase functions deploy一条命令全球上线运维控制台查看调用日志DevTools 深度调试想继续深入仓库里有一个包含 40 真实场景的示例集合从 Stripe Webhook、Telegram Bot 到 WASM 模块、单元测试覆盖几乎所有常见玩法官方总览文档apps/docs/content/guides/functions.mdx示例函数合集examples/edge-functions/supabase/functions/示例项目说明与本地运行方法examples/edge-functions/README.md掌握 Edge Functions你就拥有了 Postgres 数据库之上完整的无服务器后端能力——把数据库、认证、存储和函数编排放在一起构建 Web、移动端与 AI 应用会变得前所未有地简单。【免费下载链接】supabaseThe Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.项目地址: https://gitcode.com/GitHub_Trending/supa/supabase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表