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

时间:2017-04-15 10:42:53

标签: serverless-framework

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没有工作

3 个答案:

答案 0 :(得分:5)

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

在Linux& OSX:

AWS_PROFILE=suku sls deploy

在Windows上:

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

答案 1 :(得分:3)

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

ex: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

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

答案 2 :(得分:0)

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