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

Jaa*_*ari 5 aws-lambda serverless-framework

如果没有给出阶段,有没有办法让 Serverless 中止执行?

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

我能得到的最接近的是从本地文件读取“阶段”配置变量。不幸的是,如果(现有)本地文件中缺少阶段变量,无服务器仍然默认为“dev”。不过,它确实对缺少的变量发出了警告。

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

kas*_*tti 0

这有点猜测,因为我是无服务器框架的新手,但您可以设置当命令行选项未提供值时使用的默认值。

以下将默认值设置为dev

provider:
  stage: ${opt:stage, 'dev'}
Run Code Online (Sandbox Code Playgroud)

现在,如果您将默认值设置为空或不存在的值,即foobar,也许您会得到想要的效果并让执行中止。

此外,在这种情况下,有关覆盖变量的文档可能会提供其他有用的提示。