如何在无服务器框架中创建多个阶段
How to create multiple stages in serverless framwork
我正在尝试在无服务器中创建多个阶段但没有成功。
这是我的 serverless.yml
:
service: some-cache-updater
provider:
name: aws
runtime: nodejs8.10
stage: dev
functions:
scheduledUpdater:
handler: handler.scheduledUpdater
timeout: 120
我想添加的是具有不同超时的 prod 阶段。
我可以在同一个 yml 中做吗?
任何示例或参考都会有所帮助...谢谢。
使用 Serverless' $self
参考插值,其中可以包含进一步的插值。
必要时定义自定义变量。如果变量不存在,您也可以使用默认值。
示例:
service: some-cache-updater
custom:
functimeout:
prod: 120
uat: 60
provider:
name: aws
runtime: nodejs8.10
stage: ${opt:stage, 'dev'}
functions:
scheduledUpdater:
handler: handler.scheduledUpdater
# Lookup stage key from custom.functimeout. If it doesn't exist
# default to 10
timeout: ${self:custom.functimeout.${self:provider.stage}, '10'}
然后,当您部署时,您可以传递 --stage prod
或 --stage uat
参数。在这个例子中,没有设置舞台将默认为 dev
serverless.yml:
...
provider:
stage: ${opt:stage, 'dev'}
...
命令行:
sls deploy --stage prod
${opt:stage, 'dev'} 采用从命令行 --stage 选项传递的值。在这种情况下 prod。如果没有传递选项 dev 作为默认值。
我正在尝试在无服务器中创建多个阶段但没有成功。
这是我的 serverless.yml
:
service: some-cache-updater
provider:
name: aws
runtime: nodejs8.10
stage: dev
functions:
scheduledUpdater:
handler: handler.scheduledUpdater
timeout: 120
我想添加的是具有不同超时的 prod 阶段。
我可以在同一个 yml 中做吗?
任何示例或参考都会有所帮助...谢谢。
使用 Serverless' $self
参考插值,其中可以包含进一步的插值。
必要时定义自定义变量。如果变量不存在,您也可以使用默认值。
示例:
service: some-cache-updater
custom:
functimeout:
prod: 120
uat: 60
provider:
name: aws
runtime: nodejs8.10
stage: ${opt:stage, 'dev'}
functions:
scheduledUpdater:
handler: handler.scheduledUpdater
# Lookup stage key from custom.functimeout. If it doesn't exist
# default to 10
timeout: ${self:custom.functimeout.${self:provider.stage}, '10'}
然后,当您部署时,您可以传递 --stage prod
或 --stage uat
参数。在这个例子中,没有设置舞台将默认为 dev
serverless.yml:
...
provider:
stage: ${opt:stage, 'dev'}
...
命令行:
sls deploy --stage prod
${opt:stage, 'dev'} 采用从命令行 --stage 选项传递的值。在这种情况下 prod。如果没有传递选项 dev 作为默认值。