边缘安全加速平台 EO 从 Netlify 迁移至 EdgeOne Makers:优化您在中国区域的网站部署

本指南将帮助你将 Netlify 项目平滑迁移至 EdgeOne Makers。

相关产品
边缘安全加速平台 EO 产品页,含版本规格、价格与购买入口。

一、1. 准备工作:查找构建命令和发布目录

首先,我们需要找到你 Netlify 项目的构建命令和输出目录:

1. 登录仪表板,找到要迁移的项目。

2. 进入 Site configuration(站点配置),选择 Build & deploy(构建与部署)选项。

3. 在 Build settings(构建设置)部分,记录 Build command (构建命令)和 Publish directory(发布目录)的值。

例如:

构建命令:npm run build

发布目录:.next

这些信息将在项目配置中使用。

二、2. 配置迁移:处理重定向和标头

如果你的项目使用了 _redirects 和 _headers 文件或在 netlify.toml 文件中配置了重定向和自定义标头,需要将这些配置迁移到 EdgeOne Makers 的 edgeone.json 文件中。

在迁移之前,我们需要了解你现有的 Netlify 配置,并将其转换为 Makers 可以理解的格式。

以下是两者的对比示例:

Netlify 的 netlify.toml 配置:

[build] command = "npm run build" publish = "build"[[redirects]] from = "/articles" to = "/blogs" status = 301[[headers]]source = "/*" [[headers.headers]] key = "X-Frame-Options" value = "DENY" [[headers.headers]] key = "Cache-Control" value = "max-age=7200"[[headers]]source = "/assets/*" [[headers.headers]] key = "Cache-Control" value = "max-age=31536000"

在这个例子中,我们可以看到构建命令、发布目录、重定向规则和自定义标头的配置。

在 EdgeOne 中,我们需要创建一个 edgeone.json 文件来包含这些配置:

{ "buildCommand": "npm run build", "outputDirectory": "build", "redirects": [ { "source": "/articles", "destination": "/blog", "statusCode": 301 } ], "headers": [ { "source": "/*", "headers": [ { "key": "X-Frame-Options", "value": "DENY" }, { "key": "Cache-Control", "value": "max-age=7200" } ] }, { "source": "/assets/*", "headers": [ { "key": "Cache-Control", "value": "max-age=31536000" } ] } ]}

详细的配置选项可以参见 edgeone.json。

三、3. 函数迁移:从 Netlify 到 EdgeOne Makers

两个平台在语法和使用方式上有一些差异。下面将针对 Netlify 与 Makers 的两种函数进行对比:

Netlify Serverless Functions 示例:

export default async (request, context) => { return new Response("Hello, world!")}

Makers Cloud Functions 示例:

// ./cloud-functions/hello.jsexport default function onRequest(context) { return new Response("Hello world");}

Netlify Edge Functions 示例:

export default (request, context) => new Response("Hello world");export const config = { path: "/test" };

Makers Edge Functions 示例:

// ./edge-functions/test.jsexport default function onRequest(context) { return new Response("Hello world");}

主要差异:

1. 函数定义:

1.1 Netlify Serverless Functions 默认导出 async handler;Edge Functions 默认导出 handler(可 async),需显式指定路由 path。

1.2 Makers 使用命名的 onRequest 函数(或 onRequestGet、onRequestPost 等)。

2. 参数:

2.1 Netlify 函数接收 request 和 context 作为分开的参数。

2.2 Makers 函数接收一个 context 对象。

3. 响应方式:

3.1 两者都使用 Response 对象返回响应,这一点是相似的。

4. 运行时环境:

4.1 Netlify 使用 Node.js 运行时与 Deno 运行时。

4.2 Makers 使用 Node.js/Go/Python 等运行时与 Edge 运行时。

迁移建议:

·将默认导出函数改为命名的 onRequest 函数:

// Netlifyexport default async (request, context) => { // 函数体};// EdgeOne Makersexport default function onRequest(context) { // 函数体}

·调整参数使用:

// Netlifyconst { geo } = context;// EdgeOne Makersconst { request } = context;const geo = request.eo.geo;

·保持 Response 对象的使用方式,这部分基本不需要改变。

·检查并调整任何 Netlify 函数特定的 API 使用。Makers Functions 可能不支持某些特有的功能,需要寻找替代方案,可通过社群联系我们。

·文件命名可能需要调整。Netlify 使用 .js、.ts 或 .edge.js 后缀,而 Makers 目前支持 .js、.ts、.cjs、.jsx、.tsx。

注意:说明:

注意:Makers Functions 支持 Cloud Functions 和 Edge Functions,两者在特性上会有些许差异,例如 context 对象,可根据你的具体需求进行选择。

详细的函数使用可以参见 Makers Functions。

四、4. 项目部署:在 EdgeOne Makers 上创建新项目

准备工作完成后,在 Makers 上创建并部署项目:

1. 登录 腾讯云控制台,进入 Makers 服务。

2. 单击创建项目,选择你的 GitHub 仓库。

3. 在项目配置中,填入之前记录的构建命令和发布目录。

4. 单击开始部署,Makers 将自动构建和部署你的项目。

五、5. 域名配置:添加自定义域名

Netlify 和 Makers 在域名配置方面有一些区别:

1. 在 Makers 添加域名:

1.1 在控制台中,为你的项目添加相同的自定义域名。

2. 更新 DNS 记录:

2.1 如果你使用 Netlify DNS,需要将域名转移到另一个 DNS 提供商。

2.2 如果使用外部 DNS,只需更新现有记录:

2.2.1 将 A 记录或 ALIAS 记录改为 CNAME 记录。

2.2.2 将 CNAME 记录指向 Makers 提供的域名。

3. 验证 DNS 设置:

3.1 使用 dig 或在线 DNS 查询工具确认 DNS 更改已生效。

4. 等待 HTTPS 证书配置:

4.1 Makers 将自动为你的域名配置 HTTPS 证书。

详细的域名添加过程可以参见 域名管理 文档。

通过完成上述步骤,你已经成功将 Netlify 项目迁移到了 EdgeOne Makers。两个平台在某些方面有相似之处,但在强大的基础设施上,我们针对 Makers 产品特点进行了智能刷新预热等优化,提供开箱即用的使用体验。此外,Makers 在公测阶段相对竞品限制更少,为开发者提供更多选择的灵活性。在客户支持上,我们提供更及时的响应,致力于为开发者打造优质的产品体验。

如果你在迁移过程中遇到任何问题,欢迎参见 EdgeOne Makers 的 产品文档。

赞 (0)
上一篇 4天前
下一篇 4天前