Serverless Devs 与 Funcraft/Fcli 的对比
形式对比
|
fc 组件 |
funcraft |
fcli |
| 依赖资源描述文件(Yaml) |
✅ |
✅ |
🙅 |
| 纯命令行模式(不依赖Yaml) |
✅ |
🙅 |
✅ |
功能对比
|
fc 组件 |
funcraft |
fcli |
| 应用部署 |
✅ |
✅ |
✅(需要执行多条命令) |
| 应用移除 |
✅ |
🙅️ |
✅(需要执行多条命令) |
| 构建 |
✅ |
✅ |
🙅️ |
| 远程调用 |
✅ |
✅ |
🙅️ |
| 本地调用 |
✅ |
✅ |
🙅️ |
| 查看日志 |
✅ |
🙅 |
🙅️ |
| 查看指标 |
✅ |
🙅 |
🙅️ |
| NAS操作 |
✅ |
✅ |
🙅️ |
| 同步操作 |
✅ |
🙅 |
🙅️ |
| 版本 |
✅ |
🙅 |
🙅️ |
| 别名 |
✅ |
🙅 |
🙅️ |
| 预留 |
✅ |
🙅 |
🙅️ |
| 按量资源 |
✅ |
🙅 |
🙅️ |
| 层 |
✅ |
🙅 |
🙅️ |
| 一键压测 |
✅ |
🙅 |
🙅️ |
| 内存和并发度探测 |
✅ |
🙅 |
🙅️ |
| 实例登录 |
✅ |
🙅 |
🙅️ |
| 函数异动感知 |
✅ |
🙅 |
🙅️ |
| 端到端部署 |
✅ |
🙅 |
🙅️ |
| 多账号管理 |
✅ |
🙅️ |
🙅️ |
| API 操作 |
✅ |
🙅️ |
✅️ |
场景对比
|
fc 组件 |
funcraft |
fcli |
| 用户可能同时有测试账号和线上账号,或者个人账号和公司账号,需要进行进行不同账号的切换。 |
✅ |
🙅 |
🙅️ |
| 用户需要在一个项目的执行前后,进行其他相关的行为定义,例如部署前需要进行build,部署后需要进行版本的发布,相关文件的上传,灰度的设置等。 |
✅ |
🙅 |
🙅️ |
| 用户需要一键部署端到端的项目,例如将前端代码上传到对象存储,后端代码上传到函数计算,同时部署API网关、CDN等相关业务。 |
✅ |
🙅 |
🙅️ |
| 用户需要在本地进行调试,但是有一些网络环境时线上的VPC,此时需要在本地连接到线上的VPC环境,进行代码的调试等。 |
✅ |
🙅 |
🙅️ |
| 在进行项目部署时,Yaml需要从环境变量获取一些敏感信息,或者从其他的文件获取信息,也或者从已经部署完成的项目获得返回值作为入参,进行项目的部署。 |
✅ |
🙅 |
🙅️ |
| 不依赖Yaml进行相关的原子性的操作,例如查看函数列表,服务列表,删除某个函数、服务,查看版本列表等; |
✅ |
🙅 |
✅ |
迁移案例
从 Funcraft 迁移到 Serverless Devs 的方法
- 【推荐】Yaml 格式切换:这种方法是将 Funcarft 规范的资源描述文档(例如
template.yaml文件),转换成符合 Serverless Devs 规范且使用 FC 组件的资源描述文档(例如s.yaml文件),可以参考 fun2s 命令相关文档 ,进行一键转换;
- 资源信息重新同步:这种方法是将线上的函数资源,直接同步到本地,包括线上函数的代码和相关的配置(此时的配置是符合 Serverless Devs 规范且使用 FC 组件的资源描述文档,例如
s.yaml),可以参考 sync 命令相关文档 ,进行快速同步;
从 Fcli 迁移到 Serverless Devs 的方法
从 Fcli 迁移到 Serverless Devs 的项目,通常是进行函数管理或者是与自动化脚本集成的需求,此时可以考虑使用 API 相关能力 直接进行迁移,FC组件的 API 能力 是直接操作函数计算 API 的功能;