无服务器选项作为选项的默认值不起作用
Serverless option as default value for option not working
您好,我正在尝试使用无服务器执行以下操作:
如果我没有给出一个选项,我希望它选择另一个选项
${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'}}
- ${opt:environment,'dev'} - 当 opt:environment 未定义时,值设置为 'dev' (也可能你的意思是opt:stage)
- 构建的变量名:opt:fb,dev - 找不到。
尝试简化和拆分您的选项:
custom:
cliEnv: ${opt:environment, 'dev'}
conditionEnv: ${opt:fb, ${self:custom.cliEnv}}
要使这种类型的插值正确工作,请用双引号将内部变量括起来:
${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'}}
但是有些不对劲,因为这个错误总是在我调用 sls deploy
:
A valid option to satisfy the declaration 'opt:fb,dev' could not be found.
我不明白哪里出了问题,显然它似乎选择了正确的值。 能帮帮我吗?谢谢
根据您的表述,您正在尝试执行双重条件。好像不行。
${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}}
要使这种类型的插值正确工作,请用双引号将内部变量括起来:
${opt:fb, "${opt:environment, 'dev'}"}
此模式对于设置 default -> envvar -> CLI option
继承体系特别有用。
例如:
stage: ${opt:stage, "${env:stage, 'dev'}"}
region: ${opt:region, "${env:region, 'us-east-1'}"}
阶段和区域各有一个默认值,可以被环境变量覆盖,而环境变量又可以被 CLI 参数覆盖。