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

步骤一:准备环境

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

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

步骤二:迁移应用

  1. 执行以下命令将 Hacker News 示例项目克隆到本地。若已有 Hacker News 项目则跳过该步骤。
    git clone https://github.com/nuxt/hackernews.git                       
  2. 执行以下命令进入刚创建的示例项目或您已有的项目。
    cd hackernews                        
  3. 执行以下命令安装依赖。
    npm install                        
  4. 执行以下命令运行本地项目。
    npm run dev                    
  5. 执行以下命令编译 Hacker News 项目。
    npm run build                   
  6. 执行 fun deploy -y 命令将项目部署至函数计算。
    $fun deploy -y
    current folder is not a fun project.
    Generating /Users/XXX/Desktop/hackernews/bootstrap...
    Generating template.yml...
    Generate Fun project successfully!
    ========= Fun will use 'fun deploy' to deploy your application to Function Compute! =========
    ...  ...  ...
    Fun detected that your function hackernews/hackernews sizes exceed 50M. It is recommended that using the nas service to manage your function dependencies.
    ? Do you want to let fun to help you automate the configuration? Yes
    ? We recommend using the 'NasConfig: Auto' configuration to manage your function dependencies.
    Yes
    ...  ...  ...
    starting upload /Users/XXX/Desktop/hackernews/node_modules to nas://hackernews/mnt/auto/node_modules/
    start fun nas init...
    ...  ...  ...
                trigger httpTrigger deploy success
        function hackernews deploy success
    service hackernews deploy success
    Detect 'DomainName:Auto' of custom domain 'Domain'
    Request a new temporary domain ...
    The assigned temporary domain is 14942717-XXX.test.functioncompute.com,expired at 2020-04-02 13:51:57, limited by 1000 per day.
    Waiting for custom domain Domain to be deployed...
    custom domain Domain deploy success
    						

    函数计算平台对上传的代码包大小的限制为 50 MB,您可以在部署日志中看到 Funcraft 检查到如果您的函数代码包大小超过了函数计算平台限制后会进入大依赖向导,此时您需要输入 Y, Funcraft 会自动帮您把函数中的第三方依赖上传至 NAS。

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

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