始终要求无服务器框架的阶段参数

时间:2018-08-29 07:11:28

标签: aws-lambda serverless-framework

如果没有给出阶段,是否有办法使无服务器中止执行?

看起来它默认为“ dev”,在不存在“默认”环境的多环境设置中,它不是首选。

我能得到的最接近的结果是从本地文件中读取“ stage”配置变量。不幸的是,如果(现有)本地文件中缺少stage变量,则Serverless仍默认为'dev'。不过,它确实会为缺少的变量提供警告。

provider:
  name: aws
  runtime: nodejs8.10
  region: eu-west-1
  stage: ${file(serverless-local.yml):stage}

2 个答案:

答案 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删除开发人员