云函数是腾讯云提供的 Serverless 执行环境。您只需编写简单的、目的单一的云函数即可将它与您的腾讯云基础设施及其他云服务产生的事件关联。
使用云函数时,您只需使用平台支持的语言(Python、Node.js、PHP、Golang、Java 及 Custom Runtime)编写代码。腾讯云将完全管理底层计算资源,包括服务器 CPU、内存、网络和其他配置/资源维护、代码部署、弹性伸缩、负载均衡、安全升级、资源运行情况监控等。但这也意味着您无法登录或管理服务器、无法自定义系统和环境。
云函数自动地在同一地域内的多个可用区部署,同时提供极高的容错性。云函数在执行时将根据请求负载扩缩容,从每天几个请求到每秒数千个请求,都由云函数底层自行伸缩。您无需人工配置和介入,只需为运行中的云函数付费,即可满足不同情景下服务的可用性和稳定性。若云函数未运行,则不产生任何费用。
您可以自定义运行云函数的时机,例如,在 COS Bucket 上传时、删除文件时运行云函数、使用 Ckafka 中的消息时运行云函数、应用程序通过 SDK 调用时运行云函数,或指定云函数定期执行。您可以使用云函数作为 COS 服务的数据处理触发程序轻松实现 IFTTT 逻辑,您也可以通过构建灵活的定时自动化任务,用于覆盖手工完成的操作,轻松构建灵活可控的软件架构。
腾讯云 Serverless 团队从多方面着手,提供可以满足多种开发场景的相关工具或能力。例如:
使用 Serverless Cloud Framework,在本地开发环境中进行项目创建、本地调试打包、一键部署上线。
通过 VS Code 插件,及 IDE 可视化操作,将函数的线上线下管理及代码编写调试,整合在一个界面中完成。VS Code IDE 及插件还提供了函数的本地管理、开发调试、上线发布功能。
支持 Web IDE,在控制台上实时的开发调试,与本地开发调试的体验相同,方便代码的调整或查看。
支持 Python、Node.js、Golang、PHP、Java 等语言,同时支持 Custom Runtime,您可以根据您的需要自定义运行环境。
支持控制台部署,命令行部署,SDK/API 部署,Web IDE 直接部署以及镜像部署。
触发方式包括 API,SDK,以及其他多种云服务产品的事件例如 COS, API 网关等。多种触发选择支持更多使用场景。
在用户无感知的情况下根据调用量自动扩缩容,完美贴合调用曲线,最大程度节省资源和成本。
腾讯云云函数资源使用量支持按1ms时间粒度计费,相较于按100ms粒度计费,可以为您大幅度节约成本。
函数在未执行时不产生任何费用,对一些并非常驻的业务进程来说开销将大大降低。函数执行时按请求数和计算资源的运行时间收费,价格优势明显,对初创期的开发者十分友好。
使用对象存储 COS 作为函数触发器,在 COS Bucket 中有文件发生变更时可获得事件通知。因此针对事件,可以进行变更文件的及时处理和业务通知。
例如,在 COS Bucket 上传图片,云函数可以立刻得到通知,并可以立刻获取图片进行相应的图片剪裁、缩略、水印等操作,实现图片的自动化处理,还可以在处理完成后写入数据库,便于后续选择使用已处理好的图片。
一些数据处理系统中,经常需要周期性、计划性处理庞大的数据量。
例如,证券公司每12小时统计一次该时段的交易情况,并整理出该时段的交易量的前五名。例如,秒杀网站每天处理一遍交易流日志,获取因售罄导致的错误,借此分析网站的热度和趋势等。云函数近乎无限的扩容能力,可以使您轻松进行大容量数据的计算。使用云函数可以对源数据并发执行多个 mapper 和 reducer 函数,并在短时间内完成工作。相比传统的工作方式,使用云函数更能避免闲置和浪费,从而节省资金。
云函数可以作为移动应用及 Web 应用的后端,实现服务端应用逻辑,并通过 API 对外提供服务。通过与云缓存、云数据库、对象存储等产品的紧密结合,开发者能够构建可弹性扩展的移动或 Web 应用程序,轻松创建丰富的无服务器后端,并且这些程序可在多个数据中心高可用运行,无需在可扩展性、备份冗余方面执行任何管理工作。
在 AI 模型完成训练并开始对外提供推理服务时,可以使用无服务器云函数将数据模型包装在调用函数中。在实际用户请求到达时再运行代码,无需准备服务器,不仅可以按实际调用量计费,节省 GPU 服务器的费用,还可以获得高并发请求下的自动扩容伸缩能力。
云开发 是微信团队和腾讯云联合开发的,集成于小程序控制台的原生 Serverless 云服务。其核心功能包括:云函数、云数据库和云存储。其中云函数可以让开发者在云端运行代码,开发者只需编写自身业务逻辑代码。结合微信私有默认鉴权,平台保证安全和隔离性,并且根据请求自动伸缩。
使用消息队列或 Ckafka 作为函数触发器,在消息队列中接收到消息时将触发云函数的运行,并会将消息作为事件内容传递给云函数。
例如,在 Ckafka 中接收到业务系统的日志时,云函数可以将日志内容作为文件写入到对象存储 COS 中,实现日志的归档存储。
消息队列 CMQ 作为业务事件流转的中间通道,连接多个云函数,可以实现业务的状态流转及分派。云函数中的业务逻辑判断与处理,可以根据业务消息内容,进行不同的通道分派、状态流转、事件分发,实现复杂的业务流程连接。