如何将环境变量的回退命令参数设置为无服务器中的默认值?

How fallback cmd parameter to environment variable to defaul valune in serverless?

考虑示例:

stage: ${opt:stage, 'dev'}

如果 --stage 参数未传递,将使用 dev 值。

stage: ${opt:stage, ${env.STAGE, 'dev'}}

导致错误,因为 stage 值不是字符串

stage: ${opt:stage, "${env.STAGE, 'dev'}"}

即使我设置了STAGE系统变量也解析为dev

那么有没有办法让下面的逻辑: 1. 如果存在 STAGE 系统变量 - 应该使用它 1. 如果存在 --stage 参数 - 应该使用它。 (如果两者都存在,则覆盖 STAGE 系统变量) 1.当没有提供参数或系统变量时默认使用dev

如何定义变量来做到这一点?

你最后的努力非常接近。你想要 env:STAGE,而不是 env.STAGE

stage: ${opt:stage, "${env:STAGE, 'dev'}"}

更多关于 Serverless here.

中的环境变量