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 的功能;