填写文档满意度调查问卷,赢取缤纷好礼> HOT

常见问题

最近更新时间:2022-04-14 15:30:03

什么是云函数的层?

简单来说,层就是把项目中不经常变更的部分独立出来,云函数运行时再把层包含的文件挂载到云函数的执行环境中。 详细说明可参考云函数的 层管理 文档。

说明:

  • Next.js 项目的 node_modules 会比较大,项目稳定后,部署不需要每次都更新 node_modules。
  • 把 node_modules 部署为层,每次部署只需要上传业务代码,部署会快很多。
  • 更新 node_modules 的层时,建议使用 npm install --production安装依赖包,减少代码包体积,加快部署和启动速度。

是否需要静态托管?

建议把 SSR 应用的 static 目录和 public 目录下的所有文件启用 静态资源托管
把静态内容( HTML、JavaScript、CSS、图像、视频等文件)托管到 COS,不需要通过云函数来访问,成本更低,速度也会有比较大的提升。

如何提高网站访问速度?

如果对于网站访问速度有要求,可以启用 CDN 加速

说明:

  • 自定义的 CDN 域名暂时只支持已经在腾讯云备案的域名。
  • 更多 COS 设置 CDN 加速域名的说明请参考 COS 域名管理

如何自定义域名?

系统默认会给应用分配一个二级域名,如果用户想用自己的域名访问应用,可以设置自定义域名,具体操作请参考 配置自定义域名

  • 自定义域名必须是已经在腾讯云备案的域名。
  • 配置自定义域名后,系统会自动绑定到应用上,用户可以通过自定义的域名访问应用。
  • 配置自定义域名后,需要在域名管理设置一条 CNAME 记录,指向系统分配给应用的二级域名。

如何自定义 Web 服务?

此处以 Next.js 为例,如果没有用 Express 等 web 框架替代 Next.js 默认的 Web Server,不需要做任何改动,编译出 .next 文件夹后,直接上传整个工程即可把应用部署到 Serverless 平台上。

如果有用到 Express 或别的 Web 框架,也只需要做很简单的改造,以 Express 为例:

  1. 把启动 js 文件的名称修改为 sls.js,并把它放在项目的根目录下(控制台部署无需更名,只需填写入口文件名称)。

  2. 把监听端口修改为导出 app 应用

    const express = require('express')
    const next = require('next')
    
    async function createServer() {
      const app = next({ dev: false })
      const handle = app.getRequestHandler()
    
      await app.prepare()
      const server = express()
    
      server.all('*', (req, res) => {
        return handle(req, res)
      })
    
      // define binary type for response
      // if includes, will return base64 encoded, very useful for images
      server.binaryTypes = ['*/*']
      return server
    }
    // comment out `listen`
    // exports app server
    
    // createServer().litsen(3000);
    
    module.exports = createServer
    Nuxt.js 项目请参考 Nuxt.js 部署指引

如何自动部署?

在本地修改和更新代码后,不需要每次都运行 serverless deploy 命令来反复部署。 用户可以直接通过 serverless dev 进入开发模式

  • 在进入 dev 模式后,Serverless 工具将监控文件的修改,当代码文件有更新时,自动再次进行部署,将本地文件更新到云端。
  • dev 模式开启时自动启用在线调试能力,用户可以在Chrome浏览器或者开发IDE内直接调试部署在云端的代码,具体操作参见文档。
  • dev 模式还会实时输出云端日志,每次部署完毕后,对项目进行访问,命令行会实时输出服务端产生的日志,便于查看业务情况和排障。
目录