目前有很多Web应用基于Express框架来编写,这样的Web应用按照传统的部署方式将部署在云主机上,但您可能不想购买云主机,也不想在运维上投入太多成本,那么函数计算是一个不错的选择。本文介绍如何使用函数计算来搭建基于Express的Serverless
Web应用。
背景信息
不管您的函数是通过HTTP还是API网关触发,您都可使用函数计算提供的模板,让Express快速地在函数计算上运行起来。原生请求的Headers或者Body都会透传给您的Express应用,您只需关注如何按照Express标准方式编写业务代码即可。此外,该模板还支持ES6代码编译成ES5,剪切打包压缩成一个.js文件。
如需迁移您的Express应用,请参见迁移Express到函数计算。
操作步骤
- 安装Node.js。
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash
nvm install 8
- 安装Funcraft工具。
npm install @alicloud/fun -g
说明 Funcraft工具的某些子命令可能会用到Docker,所以您需要安装好Docker,详情请参见
Funcraft安装教程。
- 通过Funcraft模板生成项目。
fun init -n demo https://github.com/muxiangqiu/fc-Express-nodejs8.git
说明 项目生成好后,在根目录下有个
README.md文件,阅读该文件可以帮您快速了解项目骨架为您做了什么,以及相关的命令。详情请参见
README.md。
- 切换到项目根目录。
cd demo
说明 步骤5及以后的所有命令,都在项目根目录下执行。
- 安装依赖。
npm install
注意 有少数特殊npm模块的安装可能会依赖当前系统环境,为了能正确安装函数运行时的系统环境的npm模块,可以通过
fun install
命令来实现,例如Puppeteer。详情请参见
为函数安装第三方依赖。
- 编译。
- 生产编译
npm run build
- 开发编译。这种编译方式不会进行代码混淆,并且生成source map信息,方便开发调试。
npm run dev
- 本地运行函数。
- 可选:运行调试函数。
运行调试之前,请先用npm run dev
命令编译源码,然后以调试的方式运行函数,命令如下:
fun local start -d 3000
调试过程如下所示:
- 部署函数到云端。
部署函数的时候需要用到AccessKey等信息,您可以通过fun config
来配置,如果配置过请忽略,部署函数命令如下:
fun deploy