千家信息网

轻松搭建基于 Serverless 的 Egg.js Web 应用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,首先介绍下在本文出现的几个比较重要的概念:函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算
千家信息网最后更新 2026年11月01日轻松搭建基于 Serverless 的 Egg.js Web 应用

首先介绍下在本文出现的几个比较重要的概念:

函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考。
Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考。

备注: 本文介绍的技巧需要 Fun 版本大于等于 3.6.9。

Egg.js 是什么?

Egg.js 官方描述为:

Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本。
Egg 奉行『约定优于配置』,按照一套统一的约定进行应用开发,团队内部采用这种方式可以减少开发人员的学习成本,开发人员不再是『钉子』,可以流动起来。
Egg 的插件机制有很高的可扩展性,一个插件只做一件事。Egg 通过框架聚合这些插件,并根据自己的业务场景定制配置,这样应用的开发成本就变得很低。

Egg 特性:

  • 提供基于 Egg 定制上层框架的能力
  • 高度可扩展的插件机制
  • 内置多进程管理
  • 基于 Koa 开发,性能优异
  • 框架稳定,测试覆盖率高
  • 渐进式开发

示例效果预览

本文涉及到的应用示例部署后的链接,点击预览效果:

Egg.js 应用示例: http://mtime.functioncompute.com/hot

环境准备

首先按照 Fun 的 安装文档里介绍的方法将 Fun 安装到本机。

PS: 本文介绍的方法,不需要安装 Docker,仅仅安装 Fun 即可,最简单的方式就是直接下载可执行的二进制文件。

安装完成后,可以执行 fun -version 检查 Fun 是否安装成功。

第一个示例:快速初始化并部署一个 Egg.js 示例应用

根据官方 快速入门文档描述的步骤依次如下操作。

初始化一个 egg.js 示例:

mkdir egg-example && cd egg-examplenpm init egg --type=simplenpm i

将该示例在本地运行测试:

npm run dev

然后可以在浏览器访问 http://127.0.0.1:7001 查看效果。

本地开发完成后,可以直接使用如下命令进行一键部署:

fun deploy -y

第二个示例:快速迁移一个已有的 Egg.js 应用

这里我们拿一个开源的 Egg.js web 应用做示例: https://github.com/OrangeXC/mtime

首先我们需要将该应用克隆下来:

git clone https://github.com/OrangeXC/mtime

进入到 mtime 目录,使用 npm 安装依赖:

npm install

本地启动应用:

npm run dev

本地启动应用时,会使用 config/config.default.js 这个配置,需要将该配置中的 mysql 的 username、password 等属性配置为正确的值,才能将应用启动起来。

启动完成后,本地通过浏览器打开网址 http://127.0.0.1:7001 预览效果即可。

当本地测试完成后,我们就要考虑如何将其部署到线上了。部署到线上,Egg.js 默认会优先使用 config/config.prod.js 的配置,我们可以配置线上的数据库到这个文件里,这样就可以实现本地开发与线上部署使用不同的数据库的目的了。

当然,在本地也可以验证下配置是否正确,直接使用 npm run start 就可以将应用以生产的方式运行起来,使用 npm run stop 可以将应用停止。

最后,我们还需要修改下 Egg.js 的缓存与日志目录,我们添加下面的内容到 config/config.prod.js 中:

  config.rundir = '/tmp/run',  config.logger = {    dir: '/tmp/log',  }

上面的配置表示将 Egg.js 缓存以及日志写到函数计算的可写目录内(日志输出到 console 也是可以的)。

最后,我们使用 Fun 一键部署:

fun deploy -y

部署完成后,可以在终端输出看到临时域名 13500180-1986114430573743.test.functioncompute.com,通过浏览器打开临时域名可以看到与本地运行时一样的效果。

总结

本文主要介绍了如何将 Egg.js 应用部署到函数计算。相比较与传统的部署方法,不仅没有更复杂,还省略了购买机器、安装配置 Node、Npm 的步骤。可以实现,将传统的 Egg.js 应用在本地开发完成后,一键部署到远端直接用于生产,并拥有了弹性伸缩、按量付费、免运维等特性。

如果您在迁移您的应用过程中遇到了问题,欢迎加入我们的 dingding 群 11721331 反馈。

" 阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。"

应用 开发 配置 示例 函数 运行 效果 框架 插件 方式 日志 资源 服务 人员 代码 成本 技术 文件 文档 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 广东猪兼强互联网科技有限公司 涨乐互联网科技 广州凡科互联网科技 撒么互联网科技公司 互联网科技博客 汉立互联网科技有限公司联系电话 深圳国际航运科技和互联网 阿里巴巴算科技企业还是互联网 北京华百购互联网科技有限公司 四川慕妮娅互联网科技有限公司 工业互联网等科技实现智能化赋能 群盈汇互联网科技有限公司 工业互联网山东科技大学 互联网科技年终奖 珠海东科互联网科技有限公司 上海万顺科技互联网有限公司招聘 第三届互联网大会安防黑科技 科技美学互联网 艺术 山东亿川互联网科技有限责任公司 华服互联网科技怎么样 为想互联网科技怎么样 无线互联网科技 苏州大垚互联网科技 互联网科技咨询 青岛科技大学互联网大赛研究生 晓花互联网科技有限公司网址 江阴互联网智能科技产品进口 健康食品互联网创新科技园项目 互联网安防科技感
0