如何使用无服务器框架在单个 serverless.yml 文件中创建不同的阶段或环境?

Aks*_*ate 0 serverless

我是使用无服务器框架的新手,我想创建三个不同的环境 dev、Qa、prod。如何在单个 serverless.yml 文件中创建?提供商是AWS。

223*_*eca 5

您可以传递一个stageCLI 选项,该选项可以插入到serverless.yml文件中任何需要的位置。例如,采用以下 CLI 命令:

serverless --stage dev deploy
Run Code Online (Sandbox Code Playgroud)

这可以通过serverless.yml访问${opt:stage}。我通常将其包含在以下内容中provider

provider:
  stage: ${opt:stage}
Run Code Online (Sandbox Code Playgroud)

stage然后你就可以在serverless.ymlusing的任何地方获取该选项的值${self:provider.stage}

部署 lambda 时,会使用名称前缀(由中的键service定义)、阶段和 lambda 名称自动构造其 ARN,如下所示:serviceserverless.yml

arn:aws:lambda:us-east-1:010101010101:function:myservice-dev-mylambdaname
Run Code Online (Sandbox Code Playgroud)

因此,您只需为所需的其他两个阶段/环境运行部署 CLI 命令,并且每个环境都将拥有一组单独的资源。