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

前提条件

您已完成以下操作:
注意

本文介绍的如何使用Funcraft迁移传统框架的相关内容,后期将不再维护,建议您使用Serverless Devs迁移相关框架到函数计算。关于如何将函数计算的相关资源从Funcraft迁移到Serverless Devs进行管理的详细操作,请参见从Funcraft迁移到Serverless Devs

关于如何使用Serverless Devs迁移Web框架的详细操作,请参见使用Serverless Devs迁移Web框架

由此带来的不便,敬请谅解!

操作步骤

  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
                            

    您可以在以上的部署日志中看到,Funcraft检查到您的函数代码包大小超过了函数计算的限制,并进入到大依赖向导,此时您需要输入YesY,Funcraft会自动帮您把函数中的第三方依赖上传至NAS。关于函数计算使用限制的详细信息,请参见资源使用限制

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

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