前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

serverless简介及应用

首页
2021-04-16 15:24:08
Front-End
serverless

# 一、什么是Serverless

Serverless 能解决什么问题?理清 Serverless 要解决的问题其实很简单,我们可以从字面上把它拆开来看。Server 这里指服务端,它是 Serverless 解决问题的边界;而 less 我们可以理解为较少关心,它是 Serverless 解决问题的目的。组合在一起就是“较少关心服务端”

  • 第一种:狭义 Serverless(最常见)= Serverless computing 架构 = FaaS 架构 = Trigger(事件驱动)+ FaaS(函数即服务)+ BaaS(后端即服务,持久化或第三方服务)= FaaS + BaaS
  • 第二种:广义 Serverless = 服务端免运维 = 具备 Serverless 特性的云服务

# 二、编写你的第一个 Serverless 应用

  • FaaS 平台都支持 Node.js、Python 、Java 等编程语言;
  • FaaS 平台都支持 HTTP 和定时触发器(这两个触发器最常用)。此外各厂商的 FaaS 支持与自己云产品相关的触发器,函数计算支持阿里云表格存储等触发器;
  • FaaS 的计费都差不多,且每个月都提供一定的免费额度。其中 GB-s 是指函数每秒消耗的内存大小,比如1G-s 的含义就是函数以 1G 内存执行 1 秒钟。超出免费额度后,费用基本都是 0.0133元/万次,0.00003167元/GB-s。所以,用 FaaS 整体费用非常便宜,对一个小应用来说,几乎是免费的。

以阿里云函数为例

// logic.js
exports.sayHello = function (name) {
  return `Hello, ${name}!`;
}
@前端进阶之旅: 代码已经复制到剪贴板
// index.js
const logic = require('./logic');
exports.handler = (request, response, context) => {
  // 从 request 中获取
  const { name } = request.queries;

  // 处理业务逻辑
  const message = logic.sayHello(name)

  // 设置 HTTP 响应
  response.setStatusCode(200);
  response.setHeader("Content-Type", "application/json");
  response.send(JSON.stringify({ message })); 
}
@前端进阶之旅: 代码已经复制到剪贴板

把业务逻辑拆分到入口函数之外

# 触发器及事件对象

  1. HTTP 触发器

在众多 FaaS 平台中,函数计算直接提供了 HTTP 触发器,HTTP 触发器通过发送 HTTP 请求来触发函数执行,一般都会支持 POST、GET、PUT、HEAD 等方法。所以你可以用 HTTP 触发器来构建 Restful 接口或 Web 系统。

HTTP 触发器会根据 HTTP 请求和请求参数生成事件,然后以参数形式传递给函数。那么 HTTP 触发器的入口函数参数中的 request 和 response 参数具体有哪些属性呢?

其实, request 和 response 参数本质上与 Express.js 框架的 request 和 response 类似

  1. API 网关触发器

API 网关触发器与 HTTP 触发器类似,它主要用于构建 Web 系统。本质是利用 API 网关接收 HTTP 请求,然后再产生事件,将事件传递给 FaaS。FaaS 将函数执行完毕后将函数返回值传递给 API 网关,API 网关再将返回值包装为 HTTP 响应返回给用户。

fe

  • 一、什么是Serverless
  • 二、编写你的第一个 Serverless 应用
    • 触发器及事件对象
    • 日志输出
  • 三、Serverless 应用是怎么运行的
    • 函数调用链路:事件驱动函数执行
    • 函数生命周期:冷启动与热启动
    • FaaS 是怎么分层的
    • 总结
  • 四、如何提高应用开发调试和部署效率
    • 应用管理
    • 应用开发
  • 五、serverless应用
    • 阿里云函数计算
    • 腾讯云函数
    • 使用vercel部署你的应用-推荐
  • 六、场景案例
    • 1 使用 Serverless 实现登录注册功能
      • 1.1 身份认证的技术方案
      • 1.2 从 0 到 1 实现一个登录注册应用
      • 1.3 实现注册功能
      • 1.4 实现登录功能
      • 1.5 验证用户身份
    • 2 基于 Serveless 构建弹性可扩展的 Restful API
      • 2.1 内容管理系统的架构设计
      • 2.2 内容管理系统的实现
      • 2.3 用户注册
      • 2.4 用户登录
      • 2.5 身份认证
      • 2.6 发布文章
      • 2.7 查询文章
      • 2.8 更新文章
      • 2.9 删除文章
      • 2.10 总结
    • 3 基于 Serverless 开发高可用音视频处理系统
      • 3.1 传统音视频处理方案
      • 3.2 基于 Serverless 的音视频处理系统
      • 3.3 获取视频时长函数的实现
      • 3.4 音视频处理系统的部署
    • 4 使用 React.js 开发 Serverless 服务端渲染应用
    • 5 基于 Serverless 的服务端渲染架构
      • 5.1 实现一个 Serverless 的服务端渲染应用
      • 5.2 首页接口的实现
      • 5.3 首页页面的实现
      • 5.4 详情页接口的实现
      • 5.5 详情页页面的实现
      • 5.6 应用部署
      • 5.7 总结

← 微信小程序开发实践虚拟DOM原理分析 →