我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

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

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

备注: 本文介绍的技巧需要 Fun 版本大于等于 3.6.9。
轻松搭建基于 Serverless 的 Egg.js Web 应用

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 预览效果即可。

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

当本地测试完成后,我们就要考虑如何将其部署到线上了。部署到线上,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 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

首先介绍下在本文出现的几个比较重要的概念:函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而
2023-06-04

轻松搭建基于 Serverless 的 ThinkPHP 应用

首先介绍下在本文出现的几个比较重要的概念:函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而
2023-06-04

怎么轻松搭建基于Serverless的Go应用

怎么轻松搭建基于Serverless的Go应用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先介绍下在本文出现的几个比较重要的概念:函数计算(Function Compu
2023-06-04

ASP MVC:入门指南,轻松搭建你的第一个Web应用程序

本文将带你入门ASP MVC,从创建一个基本的Web应用程序开始,一步步教你如何使用ASP MVC构建更强大的应用程序。
ASP MVC:入门指南,轻松搭建你的第一个Web应用程序
2024-02-24

利用基于 QEMU 的 Quickgui 轻松创建虚拟机

Quickgui 旨在成为 VirtualBox 的一个更简单的替代品,帮助你快速创建虚拟机。让我们来看看它。

基于JCreator的轻量级Java Web开发平台的搭建全攻略

搭建基于JCreator的轻量级Java Web开发平台可以按照以下步骤进行:1. 安装JCreator:首先,下载并安装JCreator集成开发环境(IDE)。可以从JCreator官方网站上下载合适的版本。2. 安装Java开发工具包(
2023-08-28

深入剖析node.js Passport库:轻松构建安全的Web应用

Node.js Passport库是一个简单而强大、功能丰富的中间件层(middleware),它可以简化Web应用程序的认证和授权功能,从而帮助您构建更安全、更可靠的应用。
深入剖析node.js Passport库:轻松构建安全的Web应用
2024-02-24

轻量应用服务器基于Cloud Studio搭建云端IDE环境

Cloud Studio是一个基于浏览器的云端IDE,用户可以在浏览器中进行开发、调试和部署应用程序。要搭建一个轻量的应用服务器基于Cloud Studio,可以按照以下步骤进行操作:1. 注册Cloud Studio账号:访问Cloud
2023-09-21

了解HttpListener:用于创建基于HTTP协议的桌面&Web应用程序

HttpListener是一个强大而灵活的类,可以用于创建基于HTTP协议的服务器应用程序。它提供了丰富的功能和灵活的配置选项,能够轻松地处理HTTP请求和响应。

Node.js Koa初学者指南:轻松构建快速、可扩展的Web应用程序

本文将引导您使用Koa框架快速构建快速、可扩展的Web应用程序。Koa是基于Node.js的JavaScript框架,具备高性能、易扩展等优点。
Node.js Koa初学者指南:轻松构建快速、可扩展的Web应用程序
2024-02-08

开源!基于lowcode行业的开源CMS系统,轻松帮助企业和个人搭建知识管理系统

lowcode-cms 是我2年前在做低代码平台时开发的专门分享低代码资讯的社区, 集成了内容发布, 内容审核, 媒体管理, 用户体系, SSR渲染, 跨多端适配等功能模块的相对完整且轻量的CMS系统。

开源! 基于lowcode行业的开源CMS系统,轻松帮助企业和个人搭建知识管理系统

lowcode-cms 是我2年前在做低代码平台时开发的专门分享低代码资讯的社区, 集成了内容发布, 内容审核, 媒体管理, 用户体系, SSR渲染, 跨多端适配等功能模块的相对完整且轻量的CMS系统, 经历了2年多的内容历练和优化, 目前

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录