跳到主要内容

介绍

云托管函数框架 是云开发推出的支持在 云托管 上运行 函数式代码 的一种 函数托管模式,因此也可以称为 云托管-函数模式。

云托管函数框架 本质上是 云托管 服务的一种开发和运行模式,支持在 云托管 上开发和运行 函数式代码,而不需要像开发传统容器服务一样开发一个完整的服务。

云托管函数框架 可以让容器服务开发像开发云函数一样简单。

技术原理:云托管函数框架 = 云托管 + 函数框架 (@cloudbase/functions-framework) + 函数代码。函数框架 通常也称为 运行时(Runtime),可以加载云函数并运行。云托管 提供云端容器化运行环境。


Q:云托管函数框架 解决什么问题?

  1. 相比 云托管,云托管函数框架 具备更简单的开发方式
  2. 相比 云函数,云托管函数框架 可支持更多场景能力

云托管函数框架 在一定程度上结合了两者的优点,开发者可以根据自己的业务场景进行选择


Q:如何选择是否需要 函数代码 部署到 云托管?

  1. 如果业务场景需要支持 WebSocket 长连接、Server-Sent Events (SSE)、表单提交、文件上传下载、流式响应、单实例多函数、函数间共享内存数据 等特性,需要使用 云托管函数框架
  2. 如果业务场景对响应耗时更高要求,更好的用户体验,推荐使用 云托管函数框架
  3. 如果需要在函数中连接 Redis、MySQL 等 数据库,推荐使用 云托管函数框架
  4. 如果需要在函数中对接 Kafka、Pulsar 等 消息队列,需要使用 云托管函数框架
  5. 如果业务场景中需要进行长耗时异步任务处理,推荐使用 云托管函数框架
  6. 如果需要更好的 日志查询能力,推荐使用 云托管函数框架
  7. 如果想获得更好的开发调试体验,推荐使用 云托管函数框架
  8. 目前 云托管函数框架 还在不断迭代中,如某些功能特性在 云托管函数框架 中尚未支持,推荐使用 云函数 进行开发

函数框架 @cloudbase/functions-framework 提供了更好的能力支持


Q:云托管函数框架 是否需要理了解云托管或容器

  1. 需要了解 云托管,例如需要决定选择 实例规格、实例数量 等,云托管 本身也比较简单,也很容易上手
  2. 不需要理解 容器,开发者不需要了解容器的概念和原理以及如何使用容器等
  3. 总体上来说,相比 云函数 并没有需要学习和了解很多新内容

Q:现有云函数代码如何迁移到 云托管?

  1. 现有云函数代码进行简单的改造后可以运行到云托管环境中
  2. 除了云函数代码本身进行改造外,客户端侧代码也需要进行简单的改造

因 函数框架 (@cloudbase/functions-framework) 与 云函数 运行时机制存在一定差异,因此可能需要进行一定的改造。


Q:基于云托管函数框架编写的函数代码是否可以运行在其他环境?

  1. 可以,通过 函数框架 (@cloudbase/functions-framework) 即在任何支持 node.js 运行的环境中运行函数代码
  2. 支持 本地运行,主要针对开发调试场景
  3. 支持 部署在传统主机环境中,例如云服务器环境中
  4. 支持 部署在容器环境中,例如 Docker 环境中

相比运行在云托管环境中,部署在其他环境中时,需要自行解决构建部署等问题。


更多详细的差异对比见 对比其他方案-对比云函数 文档。

注意:云托管函数框架 和 云函数 在调用方式、调用链路、和运行时机制上是不同的,现有 云函数代码 在 云托管函数框架 上运行需要进行简单的改造。

相关链接​