跳到主要内容

介绍

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

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

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

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


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

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

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


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

  1. 如果业务场景需要支持 WebSocket 长连接Server-Sent Events (SSE)表单提交文件上传下载流式响应单实例多函数函数间共享内存数据 等特性,需要使用 函数型云托管
  2. 如果业务场景对响应耗时更高要求,更好的用户体验,推荐使用 函数型云托管
  3. 如果需要在函数中连接 RedisMySQL数据库,推荐使用 函数型云托管
  4. 如果需要在函数中对接 KafkaPulsar消息队列,需要使用 函数型云托管
  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 环境中

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


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

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

相关链接