我试图在无服务器中创建多个阶段但没有成功。
这是我的serverless.yml
:
service: some-cache-updater
provider:
name: aws
runtime: nodejs8.10
stage: dev
functions:
scheduledUpdater:
handler: handler.scheduledUpdater
timeout: 120
我希望添加的是 prod 阶段,其中包含不同的超时。
我可以在同一个yml中完成吗?
任何方式示例或参考都会有所帮助......谢谢。
答案 0 :(得分:2)
本文解释了在无服务器中实现阶段的正确方法 - https://serverless-stack.com/chapters/stages-in-serverless-framework.html
基本上,它为您的API网关创建了2个路由,每个阶段一个。 祝你好运!
答案 1 :(得分:0)
使用无服务器的$self
参考插值,其中可以包括进一步的插值。
定义一个自定义变量,并在必要时进行查找。如果变量不存在,也可以使用默认值。
示例:
service: some-cache-updater
custom:
functimeout:
prod: 120
uat: 60
provider:
name: aws
runtime: nodejs8.10
stage: ${opt:stage, self:provider.stage}
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'}
答案 2 :(得分:0)
serverless.yml:
...
provider:
stage: ${opt:stage, 'dev'}
...
命令行:
sls deploy --stage prod
$ {opt:stage,'dev'} 采用从命令行-stage 选项传递的值。在这种情况下,产品。如果未传递任何选项,则将 dev 作为默认设置。