用途:在 Netlify 上编写、配置和部署无服务器函数,用于添加 API 端点或后端路由。推荐使用现代默认处理器 API(.mts TypeScript):导出一个默认异步处理器,接收 Web Request 与 Netlify Context,返回 Web Response;除非写 Go 或迁移旧代码,避免旧式 AWS Lambda 处理器写法。
主要能力:函数文件放在 netlify/functions/ 目录,单文件或子目录入口(index 或与子目录同名)均可。可用 config.path 自定义路由(支持 URLPattern、excludedPath、preferStatic、method),也可用 Fetchable 模块形态。Context 提供 params、geo、ip、cookies、site、deploy、account、server、requestId 及 waitUntil。支持流式响应、后台函数(config.background,最长 15 分钟)、定时函数(config.schedule,UTC cron)、平台事件函数(部署、Identity、表单事件)。可集成 @netlify/database、@netlify/blobs,并用 purgeCache() 清除边缘缓存。
使用方式:安装类型 npm install @netlify/functions;用 Netlify.env.get() 读取环境变量,切勿硬编码密钥。本地测试:Vite 系框架装 @netlify/vite-plugin 并运行开发服务器,Next.js 等用 Netlify CLI(netlify dev);定时函数本地不按计划触发,可用 netlify functions:invoke <name> 手动调用。部署可推送 Git 持续部署,或用 CLI/API。
限制:同步执行 60 秒、定时 30 秒、后台 15 分钟;缓冲请求/响应 6 MB,流式响应 20 MB,后台负载 256 KB;所有函数合计环境变量上限约 4 KB。运行时磁盘读取的文件不会被打包,需在 netlify.toml 声明 included_files。netlify dev 下 context.geo 与 context.ip 为模拟值。除非有明确理由,不要设置 config.region、config.memory 或 config.vcpu。Go 需用 Lambda 兼容 API,路由/区域/内存通过 netlify.toml 配置。