首页
学习
活动
专区
工具
TVP
发布

云函数

修改于 2023-09-01 16:14:45
1119
概述

云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。SCF 是实时文件处理数据处理等场景下理想的计算平台。

云函数是什么?

云函数是腾讯云提供的 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粒度计费,可以为您大幅度节约成本。

云函数的产品优势是什么?

简单易用

  • 减少组件开销:使用云函数时,用户只需编写最重要的 “核心代码”,不再需要关心负载均衡、自动伸缩、网关等周边组件,极大地降低了服务架构搭建的复杂性。
  • 自动扩缩容:无需任何手动配置,云函数即可根据请求量自动横向扩缩。不管您的应用每天只有几个请求(如日志统计等定期事务),还是每秒有几千上万个请求(如移动应用的后端),云函数均可自动安排合理的计算资源满足业务需求。

高效又创造性地开发

  • 加速开发:云函数不要求特定框架或依赖,开发者可以专注于核心代码的开发。同时开发人员可以组成多个小团队,单个模块的开发无需了解其他团队的代码细节。独立开发和迭代的速度变得前所未有的快,帮助用户把握住产品上线的黄金时间。
  • 复用第三方服务:您可以使用云函数编写一些目的单一、逻辑独立的业务模块,因而可以完全复用已经成熟的第三方代码实现,例如使用 OAuth 实现登录模块。
  • 简化运维:每个函数都是单独运行、单独部署、单独伸缩的,用户上传代码后即可自动部署,免除单体式应用部署升级难的问题。

稳定可靠

  • 高可用部署:云函数可以自动在每个地域中随机地选择可用区来运行。如果某个可用区因灾害或电力故障等导致瘫痪,云函数会自动地选择其他可用区的基础设施来运行,免除单可用区运行的故障风险。
  • 与其他计算服务相辅相成:常驻的工作负载可以通过云服务器 CVM ,容器服务 TKE 来承载,而由事件触发的工作负载可以使用云函数。不同云服务满足不同的业务场景和业务需求,使得您的服务架构更加健壮。

简化管理

  • 简化安全配置:用户不再需要对 OS 入侵、登录风险、文件系统安全、网络安全和端口监听做复杂的配置和管理,一切交由平台处理,平台通过定制化的容器保证每个用户的隔离性。
  • 可视化管理:用户可直接在控制台管理函数代码及函数何时运行(即函数触发器),无需复杂的配置文件即可一键部署和测试函数

大幅度降低开销

函数在未执行时不产生任何费用,对一些并非常驻的业务进程来说开销将大大降低。函数执行时按请求数和计算资源的运行时间收费,价格优势明显,对初创期的开发者十分友好。

云函数的应用场景有哪些?

文件处理及通知

使用对象存储 COS 作为函数触发器,在 COS Bucket 中有文件发生变更时可获得事件通知。因此针对事件,可以进行变更文件的及时处理和业务通知。

例如,在 COS Bucket 上传图片,云函数可以立刻得到通知,并可以立刻获取图片进行相应的图片剪裁、缩略、水印等操作,实现图片的自动化处理,还可以在处理完成后写入数据库,便于后续选择使用已处理好的图片。

数据 ETL 处理

一些数据处理系统中,经常需要周期性、计划性处理庞大的数据量。

例如,证券公司每12小时统计一次该时段的交易情况,并整理出该时段的交易量的前五名。例如,秒杀网站每天处理一遍交易流日志,获取因售罄导致的错误,借此分析网站的热度和趋势等。云函数近乎无限的扩容能力,可以使您轻松进行大容量数据的计算。使用云函数可以对源数据并发执行多个 mapper 和 reducer 函数,并在短时间内完成工作。相比传统的工作方式,使用云函数更能避免闲置和浪费,从而节省资金。

移动及 Web 应用

云函数可以作为移动应用及 Web 应用的后端,实现服务端应用逻辑,并通过 API 对外提供服务。通过与云缓存、云数据库、对象存储等产品的紧密结合,开发者能够构建可弹性扩展的移动或 Web 应用程序,轻松创建丰富的无服务器后端,并且这些程序可在多个数据中心高可用运行,无需在可扩展性、备份冗余方面执行任何管理工作。

AI 推理预测

在 AI 模型完成训练并开始对外提供推理服务时,可以使用无服务器云函数将数据模型包装在调用函数中。在实际用户请求到达时再运行代码,无需准备服务器,不仅可以按实际调用量计费,节省 GPU 服务器的费用,还可以获得高并发请求下的自动扩容伸缩能力。

小程序

云开发 是微信团队和腾讯云联合开发的,集成于小程序控制台的原生 Serverless 云服务。其核心功能包括:云函数、云数据库和云存储。其中云函数可以让开发者在云端运行代码,开发者只需编写自身业务逻辑代码。结合微信私有默认鉴权,平台保证安全和隔离性,并且根据请求自动伸缩。

消息转存

使用消息队列或 Ckafka 作为函数触发器,在消息队列中接收到消息时将触发云函数的运行,并会将消息作为事件内容传递给云函数。

例如,在 Ckafka 中接收到业务系统的日志时,云函数可以将日志内容作为文件写入到对象存储 COS 中,实现日志的归档存储

业务流转

消息队列 CMQ 作为业务事件流转的中间通道,连接多个云函数,可以实现业务的状态流转及分派。云函数中的业务逻辑判断与处理,可以根据业务消息内容,进行不同的通道分派、状态流转、事件分发,实现复杂的业务流程连接。

词条知识树 (69个知识点)
全部收起
  • 通用问题(32个知识点)
  • 事件处理相关问题(3个知识点)
  • SCF 工具相关问题(6个知识点)
  • 计费相关问题(9个知识点)
  • 网络相关问题 (5个知识点)
  • 日志相关问题(2个知识点)
  • API 网关触发器相关问题(4个知识点)
  • Web 函数相关问题(8个知识点)
相关文章
  • 云函数
    1K
  • 【玩转云函数】腾讯云函数 Python 依赖安装
    4.3K
  • 云函数扫盲
    1.8K
  • 云函数benchmark
    727
  • 云函数基础
    1.9K
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券