无服务器:部署特定配置文件

Serverless: deploy particular profile

serverless.yml中,部署配置文件是这样设置的

custom:
defaultStage: dev
profiles:
  dev: b***2_dev
  prod: b***2_prod
  suku: b***2_suku

虽然默认部署是 dev,但我想在不更改 defaultStage 的情况下部署配置文件 suku

这个命令是什么? sls deploy --profile suku 没用

目前不支持 --profile 参数。您可以通过适当设置 AWS_PROFILE 环境变量来设置环境。要 运行 使用系统设置中默认配置文件以外的特定配置文件的命令,您可以执行以下操作:

在 Linux & OSX:

AWS_PROFILE=suku sls deploy

在 Windows:

cmd /C "set AWS_PROFILE=suku && sls deploy"

在最新版本的无服务器(当前为 1.26.1)上,您可以提供参数 --aws-profile

例如:sls --aws-profile suku deploy https://serverless.com/framework/docs/providers/aws/guide/credentials#using-the-aws-profile-option

但是,对于您的情况,另一种选择是使用 "per stage" 配置文件:

service: new-service
provider:
  name: aws
  runtime: nodejs6.10
  stage: ${opt:stage, self:custom.defaultStage}
  profile: ${self:custom.profiles.${self:provider.stage}}
custom:
  defaultStage: dev
  profiles:
    dev: devProfile
    prod: prodProfile

https://serverless.com/framework/docs/providers/aws/guide/credentials#per-stage-profiles

确保您的 aws 配置文件已在 ~/.aws/credentials 中设置,您可以 运行 export AWS_PROFILE=selectedAccount。对于您 shell 会话的其余部分,selectedAccount 将是您的默认配置文件。您现在可以 运行 sls deploy 它将部署到 selectedAccount