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

How to create different stages or environments in single serverless.yml file using serverless framework?

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

您可以传递一个 stage CLI 选项,该选项可以在 serverless.yml 文件中的任何需要的地方插入。例如,执行以下 CLI 命令:

serverless --stage dev deploy

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

provider:
  stage: ${opt:stage}

然后您可以使用 ${self:provider.stage}.

serverless.yml 中的任何位置获取 stage 选项的值

部署 lambda 时,它们的 ARN 会自动构建,前缀为 service 名称(由 serverless.yml 中的 service 键定义)、阶段和 lambda名称,如下所示:

arn:aws:lambda:us-east-1:010101010101:function:myservice-dev-mylambdaname

因此您可以简单地 运行 部署 CLI 命令用于您想要的其他两个 stages/environments,并且每个环境都有一组单独的资源。