介绍
函数型云托管
是云开发推出的支持在 云托管
上运行 函数式代码
的一种 函数托管模式,因此也可以称为 云托管-函数模式
。
函数型云托管
本质上是 云托管
服务的一种开发和运行模式,支持在 云托管
上开发和运行 函数式代码
,而不需要像开发传统容器服务一样开发一个完整的服务。
函数型云托管
可以让容器服务开发像开发云函数一样简单。
技术原理:函数型云托管
= 云托管
+ 函数框架 (@cloudbase/functions-framework)
+ 函数代码
。函数框架
通常也称为 运行时(Runtime)
,可以加载云函数并运行。云托管
提供云端容器化运行环境。
Q:函数型云托管
解决什么问题?
- 相比
云托管
,函数型云托管
具备更简单的开发方式 - 相比
云函数
,函数型云托管
可支持更多场景能力
函数型云托管
在一定程度上结合了两者的优点,开发者可以根据自己的业务场景进行选择
Q:如何选择是否需要 函数代码
部署到 云托管
?
- 如果业务场景需要支持
WebSocket 长连接
、Server-Sent Events (SSE)
、表单提交
、文件上传下载
、流式响应
、单实例多函数
、函数间共享内存数据
等特性,需要使用函数型云托管
- 如果业务场景对响应耗时更高要求,更好的用户体验,推荐使用
函数型云托管
- 如果需要在函数中连接
Redis
、MySQL
等数据库
,推荐使用函数型云托管
- 如果需要在函数中对接
Kafka
、Pulsar
等消息队列
,需要使用函数型云托管
- 如果业务场景中需要进行长耗时异步任务处理,推荐使用
函数型云托管
- 如果需要更好的
日志查询能力
,推荐使用函数型云托管
- 如果想获得更好的开发调试体验,推荐使用
函数型云托管
- 目前
函数型云托管
还在不断迭代中,如某些功能特性在函数型云托管
中尚未支持,推荐使用云函数
进行开发
函数框架
@cloudbase/functions-framework
提供了更好的能力支持
Q:函数型云托管
是否需要理了解云托管或容器
- 需要了解
云托管
,例如需要决定选择实例规格
、实例数量
等,云托管
本身也比较简单,也很容易上手 - 不需要理解
容器
,开发者不需要了解容器的概念和原理以及如何使用容器等 - 总体上来说,相比
云函数
并没有需要学习和了解很多新内容
Q:现有云函数代码如何迁移到 云托管
?
- 现有云函数代码进行简单的改造后可以运行到云托管环境中
- 除了云函数代码本身进行改造外,客户端侧代码也需要进行简单的改造
因
函数框架 (@cloudbase/functions-framework)
与云函数
运行时机制存在一定差异,因此可能需要进行一定的改造。
Q:基于函数型云托管编写的函数代码是否可以运行在其他环境?
- 可以,通过
函数框架 (@cloudbase/functions-framework)
即在任何支持node.js
运行的环境中运行函数代码 - 支持 本地运行,主要针对开发调试场景
- 支持 部署在传统主机环境中,例如云服务器环境中
- 支持 部署在容器环境中,例如
Docker
环境中
相比运行在云托管环境中,部署在其他环境中时,需要自行解决构建部署等问题。
更多详细的差异对比见 对比其他方案-对比云函数 文档。
注意:函数型云托管 和 云函数 在调用方式、调用链路、和运行时机制上是不同的,现有 云函数代码 在 函数型云托管 上运行需要进行简单的改造。