问题描述
嗨,我正在尝试通过无服务器执行以下操作: 如果我不提供选择,我希望它选择另一个选择
${opt:fb,${opt:environment,'dev'}}
但是出了点问题,因为此错误总是在我呼叫sls deploy
时出现:
A valid option to satisfy the declaration 'opt:fb,dev' Could not be found.
我不明白问题出在哪里,显然是正确地选择了该值。 能帮我吗?谢谢
解决方法
要使这种插值类型正常工作,请用双引号将内部变量包裹起来:
${opt:fb,"${opt:environment,'dev'}"}
此模式对于设置default -> envvar -> CLI option
继承体系特别有用。
例如:
stage: ${opt:stage,"${env:stage,'dev'}"}
region: ${opt:region,"${env:region,'us-east-1'}"}
每个阶段和区域都有一个默认值,可以使用环境变量覆盖该默认值,然后可以使用CLI参数覆盖该变量。
,根据您的表情,您试图做一个双重条件。看起来不起作用。
$ {opt:fb,$ {opt:environment,'dev'}}}
- $ {opt:environment,'dev'}-未定义 opt:environment 时,值设置为'dev'(也许您是说 opt:stage )
- 构建变量的名称:opt:fb,dev-找不到。
尝试简化和拆分选项:
custom:
cliEnv: ${opt:environment,'dev'}
conditionEnv: ${opt:fb,${self:custom.cliEnv}}