本文介绍如何将 Express 应用部署到函数计算。与传统的部署方法相比,您可将传统的 Express 应用一键部署至远端直接用于生产。跳过购买机器等步骤的同时,还拥有了弹性伸缩、按量付费和免运维等特性。

背景信息

Express 是一个基于 Node.js 平台的极简、灵活的 Web 应用开发框架,提供一系列强大的特征,帮助您创建各种 Web 和移动设备应用。

步骤一:准备环境

您无需安装 Docker,仅安装 Funcraft 即可,最简单的方式即直接下载可执行的二进制文件。

  1. 安装 Funcraft 到本机。详情请参见安装 Funcraft
  2. 执行 fun --version 检查安装是否成功。

步骤二:迁移应用

  1. 执行以下命令创建一个 Express 项目。
    npx express-generator

    详情请参见 Express application generator,或者您可以按照官方描述的步骤创建简单的 Hello world example,若有 Express 项目则跳过该步骤。

  2. 执行以下命令进入刚创建的示例项目或您已有的项目。
    cd <project-name>
  3. 执行以下命令安装依赖。
    npm install
  4. 执行以下命令运行项目。
    • MacOS、Linux 平台
      DEBUG=myapp:* npm start
    • Windows 平台
      set DEBUG=myapp:* & npm start
  5. 执行 fun deploy -y 命令将项目部署至函数计算。

    Funcraft 会自动进入部署流程。

    $fun deploy -y
    current folder is not a fun project.
    Generating /Users/txd123/Desktop/Express/bootstrap...
    Generating template.yml...
    Generate Fun project successfully!
    ========= Fun will use 'fun deploy' to deploy your application to Function Compute! =========
    using region: cn-qingdao
    using accountId: ***********3743
    using accessKeyId: ***********Ptgk
    using timeout: 60
    
    Collecting your services information, in order to caculate devlopment changes...
    
    Resources Changes(Beta version! Only FC resources changes will be displayed):
    ...  ...  ...  ...
                   trigger httpTrigger deploy success
           function Express deploy success
    service Express deploy success
    
    Detect 'DomainName:Auto' of custom domain 'Domain'
    Request a new temporary domain ...
    The assigned temporary domain is 15795585-XXX.test.functioncompute.com,expired at 2020-04-12 10:46:25, limited by 1000 per day.
    Waiting for custom domain Domain to be deployed...
    custom domain Domain deploy success

    部署成功后,您可以在日志中看到函数计算为您生成的临时域名,通过这个临时域名您可直接访问刚部署的应用。

    说明 临时域名仅用作演示以及开发,具有时效性。如需用作生产,请绑定已经在阿里云备案的域名,详情请参见 绑定自定义域名