前言

在我的上一篇文章中,我们从概念入手,认识了什么是Serverless,以及现有的支持Serverless的厂商。

​我的 Serverless 实战 — 理解Serverless概念、和传统开发模式区别以及优缺点​

从这篇开始,我将从实践出发,一步一步踩坑,详细介绍函数即服务(Faas)以及相关配套服务的部署,最终达到在生产环境运行的目的。

腾讯云serverless

PHP7 + API网关

我的 Serverless 实战 — 保姆级带你部署云函数_基本配置

这个demo让我们了解到云函数的配置情况和基本流程。

点击部署,我们可以看到的是新建云函数页面。

包含了


  • 基本配置
  • 函数代码
  • 高级配置
  • 触发器配置

基本配置

基本配置主要是选择地域,推荐查找官方文档,选择最便宜的地域。

我的 Serverless 实战 — 保姆级带你部署云函数_serverless_02

根据查询文档,目前还没有根据地域区分定价,所以根据实际情况选择离业务较近的地域即可。

函数代码

我的 Serverless 实战 — 保姆级带你部署云函数_腾讯云_03

函数代码整合了Cloud Studio 的在线编辑器,显然不是很好用,不管是编写还是调试。这个坑后续再说。


高级配置

这里的高级配置指的是绑定腾讯云的日志服务CLS,和一些运行相关的配置问题。

云函数服务支持两种触发方式


  • 同步
  • 异步

如果需要支持异步操作,就需要勾选配置项。

我的 Serverless 实战 — 保姆级带你部署云函数_serverless_04

环境配置指定了运行内存,这个很重要,因为内存的多少和费用是紧密相关的。


资源使用费用 =(资源使用量 - 免费资源额度)× 资源使用单价
资源使用量 GBs
资源使用量 = 函数配置内存 × 运行时长
用户资源使用量,由函数配置内存,乘以函数运行时的计费时长得出。其中配置内存转换为 GB 单位,计费时长由毫秒(ms)转换为秒(s)单位,因此,资源使用量的计算单位为 GBs(GB-秒)。
例如,配置为256MB的函数,单次运行了1760ms,计费时长为1760ms,则单次运行的资源使用量为(256 / 1024)×(1760 / 1000) = 0.44GBs。


这时候体会出代码优秀有多重要了吧。。。。

我的 Serverless 实战 — 保姆级带你部署云函数_基本配置_05

触发器配置

我的 Serverless 实战 — 保姆级带你部署云函数_基本配置_06

触发器的概念源自于"事件触发(Event-Triggered)",触发器可以理解为将云函数调用到业务中的桥梁,我们可以通过下面方式调用触发器,运行云函数


  • 定时触发
  • 指定的 COS Bucket 发生对象创建或对象删除事件时
  • 指定的 CKafka Topic 接收到消息时
  • 指定的 CMQ Topic 接受到消息时
  • 指定的 CLS 触发器接收到消息时
  • 指定的 MPS 触发器接收到消息时
  • CLB 触发器接收到请求时

这里我们可以发现一个问题,业务和架构的数据流动,都需要依赖于触发器进行,而服务商的各种服务是紧密绑定的。而我们从这里也就能体会到Serverless的缺点之一,迁移成本提高。

创建云函数

点击创建之后,就会看到云函数正在创建

我的 Serverless 实战 — 保姆级带你部署云函数_云函数_07

经过等待,云函数创建完成。

我的 Serverless 实战 — 保姆级带你部署云函数_serverless_08

角色授权

我的 Serverless 实战 — 保姆级带你部署云函数_腾讯云_09

调用云函数

使用测试调用云函数,可以测试云函数的返回,并且可以我们可以在日志中查看返回。

我的 Serverless 实战 — 保姆级带你部署云函数_serverless_10

总结

本文主要讲了


  • 云函数的创建
  • 云函数的触发方式
  • 测试环境调用云函数

下次更新


  • Serverless应用的创建
  • Serverless中调用多个云函数

参考资料