Netlify 免费部署云函数。

简介

Netlify 类似于 Vercel 。更多信息请自定阅读官网介绍。

Netlify 每个月有 100G 带宽,300 分钟免费构建时间。

前置准备

编写无服务函数说明

使用 js 编写。Netlify 提供了两种函数,分别为 Functions Edge Function ,这里我们只介绍 Function。

默认函数目录为 YOUR_BASE_DIRECTORY/netlify/functions。Netlify 将在每次构建期间访问 functions 目录,并每个支持的代码文件并将其部署为函数。您可以将函数文件直接存储在 functions 目录下或专用于函数的子目录中。如果选择子目录,则函数入口文件必须命名为 index 或与子目录同名。例如,以下任何文件都将创建一个名为 “hello” 的函数:

函数运行环境说明

Netlify 函数在 Node.js 中运行,Node.js 18.0.0 是所需的最低版本,因为函数使用标准的 Fetch API ,该 API 仅在版本 18.0.0 以及最新版本添加到 Node.js 中,当然,您可以使用 环境变量 来设置 Node.js 版本。

Node.js 支持两种不同的模块格式,它们具有不同的功能和 API: ECMAScript 模块(或 ES 模块)是 JavaScript 包的官方标准格式,而 CommonJS 则是 Node.js 特有的传统格式。

每个函数的模块格式将由其入口文件的文件扩展名决定:

选择模块格式会影响函数的编写方式,尤其是在导入 npm 包时:

来自官方的提示: 除非您有充分的理由选择 CommonJS,否则我们建议您选择 ES 模块,因为它是一种现代、标准、前瞻性的格式。由于边缘函数也使用这种格式,因此使用这种格式将使您的代码在两种函数类型之间具有互操作性。

获取环境变量

在 Netlify 中获取 Function 的环境变量使用 process.env.VARIABLE_NAME,Edge Function 使用 Netlify.env.get("VARIABLE_NAME")

本地测试可以使用 Netlify Cli,浪子没有试过,直接 commit Github 测试的。 Netlify 云函数的返回的资源默认不支持跨域,可以进行如下设置:

JAVASCRIPT
1return {
2    statusCode: 200,
3    headers: {
4        'Content-Type': 'application/json',
5        // 支持所有跨域请求 或者 选择性支持
6        'Access-Control-Allow-Origin': '*' || 'Access-Control-Allow-Origin': '你的域名'
7    },
8    body: JSON.stringify(data),
9};
点击展开查看更多

版权声明

作者: 浮生一梦

链接: /posts/2024/02/netlify-deploy-serverless/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键