简单来说,层就是把项目中不经常变更的部分独立出来,云函数运行时再把层包含的文件挂载到云函数的执行环境中。详细说明可参考云函数的 层管理 文档。
说明:
- 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 域名管理。
系统默认会给应用分配一个二级域名,如果用户想用自己的域名访问应用,可以设置自定义域名,具体操作请参考 配置自定义域名。
此处以 Next.js 为例,如果没有用 Express 等 web 框架替代 Next.js 默认的 Web Server,不需要做任何改动,编译出 .next 文件夹后,直接上传整个工程即可把应用部署到 Serverless 平台上。
如果有用到 Express 或别的 Web 框架,也只需要做很简单的改造,以 Express 为例:
把启动 js 文件的名称修改为 sls.js,并把它放在项目的根目录下(控制台部署无需更名,只需填写入口文件名称)。
把监听端口修改为导出 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
进入开发模式。
随着前端工程日益复杂,某些业务或者工具库通常涉及到很多个仓库,那么时间一长...
公司 域名 在哪里注册?公司域名,是用户在互联网中区别其他公司的重要标识。在...
本文转载自微信公众号「 程序员内点事」,作者 程序员内点事。转载本文请联系 程...
您知道哪个梯度提升? Xgboost,LightGBM,Catboost,HistGradient。 您知道哪种...
去年9月,埃森哲(Accenture)承诺在三年内投入30亿美元,帮助企业构建云优先的基...
TOP云 6月20日消息,三字母 .cn域名 den.cn近日在TOP云竞拍交易中成交,成交价格...
服务器不稳定对网站优化造成的致命影响,为避免后续的朋友为了贪图便宜而选择不...
为了在优化成本的同时最大化云计算的优势,DevOps方法是最好的方法。在此博客文...
-更多关于数智化转型、数据中台内容请加入 阿里云数据中台交流群—数智俱乐部 和...
日本京都动画公司第一工作室于18日发生纵火案,造成35人死亡。这一被粉丝昵称为...