如何在不部署的情况下对Serverless Framework执行dry run测试?
Serverless Framework 本地无部署测试(Dry Run)方案
--noDeploy为 Serverless Framework v2 之前的旧版参数,在 v2.30.0 及之后版本已被废弃,因此不会生效。
1. 官方原生Dry Run参数
当前版本直接使用 serverless deploy --dry-run 命令即可实现完全等效于 Terraform plan 的效果:
- 完整模拟全量部署流程
- 自动校验配置合法性、云厂商凭证有效性
- 输出完整的资源变更清单(新增/修改/删除的资源明细)
- 不会触发任何云端资源的实际部署操作
2. 前置配置校验
执行 serverless config validate 命令,可以在更早期阶段拦截配置类错误:
- 校验
serverless.yml语法正确性 - 校验必填字段、变量引用、权限配置是否合法
- 无需打包代码,执行速度快,适合放在CI流水线的最前置节点
3. 部署包与编排模板预览
执行 serverless package 命令,可以生成最终部署用的完整产物,不会触发云端部署:
- 自动打包函数代码、依赖层
- 生成最终提交给云厂商的资源编排模板(如AWS CloudFormation模板、阿里云/腾讯云的函数编排模板)
- 可直接查看生成的编排文件,确认变量替换、资源配置是否符合预期
CI流水线集成建议
按以下顺序配置CI任务即可实现部署前的全量校验:
- 第一步:安装项目依赖与Serverless Framework
- 第二步:执行
serverless config validate校验配置 - 第三步:执行
serverless deploy --dry-run生成变更清单,可将该步骤输出作为CI日志留存,供变更审核使用 - 第四步:变更确认通过后,再执行实际的
serverless deploy部署命令
注:若使用特定云厂商的第三方Serverless组件,部分组件可能未适配--dry-run参数,可使用serverless package的输出做二次校验,同样能达到近似Dry Run的效果
内容的提问来源于stack exchange,提问作者Leonardo Lima
相关产品推荐
相关产品推荐

