Verify 校验Yaml内容
verify
命令可以验证 Serverless Devs Yaml 文件内容(格式和数值)是否合法。
命令解析
执行s verify -h
之后,可以进行相关帮助信息的查看:
功能原理
verify
命令的功能实现包含两个部分:
- Serverless Devs 工具侧:对 Yaml 文件的格式,魔法变量,版本等进行基本校验。这部分功能与
preview
命令的功能雷同。 - 组件侧:通过组件按照一定约定提供的方法,对 Yaml 文件中所有资源的属性值进行更加细致的真值校验,例如类型是否正确,取值是否存在于枚举项中等。
组件侧的约定方法和开发案例可见:Serverless Devs 组件开发规范。
操作案例
无组件支持
当 Yaml 文件中的组件不提供约定方法时,Serverless Devs 只会直接对 Yaml 文件(默认为当前目录下s.yaml
文件,也可以通过-t
指定其他文件和--env
指定环境)进行基本校验,并提示 Yaml 文件中存在的错误。若没有错误,则提示如下:
若存在错误,则会报错。以下是一个魔法变量解析失败的例子:
有组件支持
当 Yaml 文件中的组件提供约定方法时,Serverless Devs 不仅会做基本校验,还会对 Yaml 文件中的所有资源进行真值校验,并提示存在的错误。以下是一个使用fc3组件提供的方法,进行资源属性检验,并且值类型错误的例子:
s.yaml
部分内容如下:
其中可以看到,timeout
属性的值为this is a string
,但该属性的类型为integer
,因此会报错。执行s verify
命令,会提示如下:
除此之外,还可以检测枚举项。假如s.yaml
为如下内容:
其中runtime
属性的值为nodejs4
,但该属性的枚举项并不包含该值,因此会报错并提示所有的枚举项。执行s verify
命令,会提示如下: