云函数介绍与使用
2021年Q2季度分享1
云函数 serverLess介绍
云函数是什么
无服务器执行环境,函数即服务。
函数即服务和传统应用架构不同,函数服务提供的是事件触发式的运行方式,云函数不是始终运行的状态,而是在事件发生时由事件触发运行,并且在一次运行的过程中处理这一次事件。因此在云函数的代码中,仅需考虑针对一个事件的处理流程,而针对大量事件的高并发处理,由平台实现云函数的多实例并发来支持。
开发者仅需要关注函数级的业务开发即可。
计算资源的变迁
云服务器:以云服务器为扩展单位,虚拟化硬件设备。用户和其他租户共享物理机资源,仍可自行配置 CVM 的各项指标,相对部署和迭代更加简单。
容器:以服务为扩展单位,虚拟化操作系统。测试和生产环境完全一致,测试和部署非常轻松。
云函数:以函数为扩展单位,虚拟化运行时环境(Runtime)。是现有计算资源的最小单位,具有完全自动、一键部署、高度可扩展等特点,是轻量级服务部署非常好的选择。
云函数的特性
主要应用场景
- 文件处理及通知
- 数据 ETL 处理
一些数据处理系统中,经常需要周期性、计划性处理庞大的数据量。 - http应用,api接口
- 小程序
- 业务流转
- 等等
云函数收费计算
内存使用量*函数运行时长。
按需付费,毫秒级计费模式
腾讯云云函数资源使用量支持按1ms时间粒度计费,相较于按100ms粒度计费,可以为您大幅度节约成本。
个人总结的云函数优缺点
优点
- 快速部署,开发者只需要关注业务代码。
- 收费方式灵活。适合低活跃度应用,空闲时间无需付费。
- 开发者无需关注负载均衡、自动伸缩等事项。
缺点
- 不适合热启动,高qps的应用。
- 不适合需要长时间运行的应用,webSocket等等
- 网络问题较多。个人遇到过访问cos出现socket hang up情况,请求自己的vps响应时间过长等情况。
- 云函数业务较为新颖,线上服务不是很稳定。个人遇到过 函数启动失败的情况,当时的处理方案是重新复制云函数才行。
云函数开发相关
目前云函数支持的语言
1 | python |
环境变量
1、支持配置部分环境变量,如时区等等
依赖库
- 类似node、python 内部集成了部分依赖库可以不进行上传操作
- 可以把依赖库放入代码中 一起上传
- 可以设定自己的依赖库层 多个云函数使用同一套依赖库
函数触发器
- 对象存储 发布事件并调用函数 应用实例【1、收到新图像进行压缩处理 2、收到语音消息做转文字处理等等】
- API网关触发 【1、api接口计算返回处理 等等】
- 定时触发 【1、定时汇总数据 2、定时消息推送等】
- Kafka触发
- 还有很多各种云自己的触发规则 如CLB 触发器、CLS 触发器、CMQ Topic 触发器、MPS 触发器等等
云函数使用样例
我个人 使用的应用实例
- Twitter监控并翻译转发到qq群
- 无服务器下的 短链接业务的实现【存储腾讯云cos 腾讯云函数 腾讯网关api】
- 定时推送天气预报服务
- 微博监控并转发到QQ群
- getReportToQWechat qh360服务报表每周1 3 5 生成。定时获取数据推送到企业微信。
- bilibili直播每日签到
Midway Serverless 中的应用
参考文档:https://www.yuque.com/midwayjs/midway_v2/serverless_dev
midway 在Serverless中的应用部署实战
大概10分钟即可完成应用创建及部署
1、创建midway Serverless应用
备注:一定要使用–type=faas标识创建的是faas应用
1 | $ npm init midway --type=faas my_midway_app |
2、打开项目 编写自己的代码
3、创建api网关 修改f.yml配置 部署环境
参考文档 https://www.yuque.com/midwayjs/midway_v2/deploy_tencent_faq
f.yml配置样例
1 | service: |
4、发布部署
1 | npm run deploy |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 雪の镇守府!
评论