面向 Serverless 的开发者工具都有哪一些呢?
在 Serverless 技术趋势大热的今天,已经涌现出很多面向开发者的解决方案和工具,例如开源的 Serverless Framework,Zappa 和 ClaudiaJS 等工具。
开发者工具大部分都通过调用云厂商中 Serverless 产品的 API/SDK,封装底层能力,并提供给客户更加直观便捷的使用方式。目前比较常见的开发工具中,主要分为 CLI 命令行工具以及 IDE 插件这两种形态。虽然展现方式不同,但本质上都是降低了本地开发 Serverless 项目的门槛,并在云平台提供的基础能力上,封装了更多组织和编排的方式。
本文将以腾讯云的云函数为例,介绍较为典型的开发工具 —— 腾讯云 Serverless 本地开发工具及 VS Code 插件。
腾讯云 Serverless 本地开发工具(SCF CLI)以开源项目的形式维护,目的在于让用户方便的实现函数打包、部署、本地调试,也可以方便的生成云函数的项目并基于 demo 项目进一步的开发。SCF CLI 通过一个函数模板配置文件,完成函数及相关周边资源的描述,并基于配置文件实现本地代码及配置部署到云端的过程。
我们以一个 Serverless 项目为例,展示 Serverless 开发工具的使用流程:
1、函数开发和编码 首先,安装并配置了 SCF CLI 后,可以通过 --help 命令查看所支持的命令,之后通过 scf init 命令快速生成一个函数 demo。在创建完毕后,可以看到生成了 index.js 文件和template.yaml 文件。
其中,index.js 是函数的入口文件,tempate.yaml 则是通过特定的格式记录了函数的配置信息,如内存大小,超时时间等信息。tempate.yaml 也是后续对函数进行编排和组织的关键。除了简单的 init 命令之外,SCF CLI 也支持从 git 拉取代码和一些已有的函数模板,便于客户基于特定的场景快速开发。
2、代码调试 在开发过程中,开发者会选取自己熟悉的 IDE 代码编辑器进行代码编写。为了便于更快速直观的进行本地开发和调试,通过腾讯云 VS Code 插件支持了一键调试的能力。
首先,可以打开刚创建函数的文件目录,在插件中会自动识别这个函数。之后可以通过 F9 进行断点,F5 启动调试能力。函数调试过程中的输出会打印在 terminal 中,并且支持单步调试,查看变量和堆栈等信息。 3、代码发布 完成了开发和测试后,也可以分别通过 VS Code 插件或 CLI 进行代码的发布。目前分别支持了zip 打包发布,通过 COS(对象存储)上传并发布,以及通过 git 仓库发布,每次只提交增量修改的文件。在发布完毕后,还可以通过插件中的云端调试,来查看在云端的运行状况和返回日志。 4、多函数部署 在 VS Code 插件及 CLI 中,可以很方便的将单函数部署在云端,那么如果希望快速发布多个函数时,应该怎样操作呢?
目前也可以直接通过 SCF CLI 的 deploy 命令来实现。只需要通过一个 template.yaml 来维护多个函数的信息即可。
除了发布之外,还可以通过 template.yaml 文件中的 Global 字段来定义一些函数的通用配置,从而解决开发过程中,希望多个函数共用相同配置的痛点(例如共用相同的环境变量,超时时间和内存等,不需要重复配置)
例如,在我的工作空间下,有两个函数「hellotinatest234」以及「testscflinux」需批量部署上传,并且两个函数使用公共配置。则可以在 template.yaml 中分别定义两个函数的属性,并且定义 Global 字段指定公共配置。部署过程和 yaml 的样式 5、异常排查 - 日志能力 除了开发流程之外,在生产环境异常时,也可以通过 CLI 的 logs --tail 等命令,快速灵活地进行日志查询等,并且可以配合 grep awk 等工具使用。当发布新版本时,采用 tail 模式可以实时打印云端日志,方便开发者快速查看问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。