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

suk*_*uku 5 serverless-framework

在中serverless.yml,部署配置文件的设置如下

custom:
defaultStage: dev
profiles:
  dev: b***2_dev
  prod: b***2_prod
  suku: b***2_suku
Run Code Online (Sandbox Code Playgroud)

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

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

小智 11

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

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

但是,在您的情况下,另一种选择可能是使用“每阶段”配置文件:

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
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

在Linux和OSX上:

AWS_PROFILE=suku sls deploy
Run Code Online (Sandbox Code Playgroud)

在Windows上:

cmd /C "set AWS_PROFILE=suku && sls deploy"
Run Code Online (Sandbox Code Playgroud)