SuperAPI AI 工具集

netlify-functions

部署与运维

查看项目

更新于 10-16 03:47

技能介绍

用途:在 Netlify 上编写、配置和部署无服务器函数,用于添加 API 端点或后端路由。默认推荐现代 default-handler API(.mts TypeScript):导出接收 web Request 与 Netlify Context、返回 web Response 的异步处理器,避免旧式 AWS Lambda 处理器形态(Go 或迁移旧代码除外)。

主要能力:函数文件放在 netlify/functions/,单文件或入口为 index 的子目录均可;用 .mts/.mjs 表示 ES 模块。可用 config.path 自定义路由(支持 URLPattern、多路径、excludedPath、preferStatic、method),也可用 Fetchable 模块形态。Context 提供 params、geo、ip、cookies、site、deploy、account、server、requestId 及 waitUntil。支持流式响应、后台函数(最长 15 分钟)、定时函数(cron,UTC)、平台事件函数(部署、身份、表单事件,可拒绝或修改用户)。集成 @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.toml 的 [[headers]]、_headers 与重定向头规则仅作用于静态 CDN 响应,函数响应头需在代码中设置。netlify dev 下 context.geo 与 context.ip 为模拟值。除非有明确理由,不要设置 config.memory、config.vcpu 或覆盖 config.region。Go 需使用 Lambda 兼容 API,路由、区域、内存通过 netlify.toml 配置。