如果没有给出阶段,是否有办法使无服务器中止执行?
看起来它默认为“ dev”,在不存在“默认”环境的多环境设置中,它不是首选。
我能得到的最接近的结果是从本地文件中读取“ stage”配置变量。不幸的是,如果(现有)本地文件中缺少stage变量,则Serverless仍默认为'dev'。不过,它确实会为缺少的变量提供警告。
provider:
name: aws
runtime: nodejs8.10
region: eu-west-1
stage: ${file(serverless-local.yml):stage}
答案 0 :(得分:0)
由于我是无服务器框架的新手,这有点猜测,但是您可以设置在命令行选项未提供value时使用的默认值。
以下内容将默认值设置为dev
。
provider:
stage: ${opt:stage, 'dev'}
现在,如果将默认值设置为空或不存在的值(例如foobar
),也许您将获得想要的效果并中止执行。
此外,在这种情况下,the documentation on overwriting variables可能还会提供其他有用的提示。
答案 1 :(得分:0)
也许您可以为此编写一个无服务的插件。
另一种选择是使用Jeremy Daly(https://github.com/jeremydaly/serverless-stage-manager)的此插件,并从custom.stages
删除开发人员