Search code examples
serverless-framework

Serverless: deploy particular profile


In the serverless.yml, the deployment profiles are set like this

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

While the default deploy is dev, I would like to deploy the profile suku without changing the defaultStage.

What is the command for this? sls deploy --profile suku didn't work


Solution

  • On newest versions of serverless (currently 1.26.1), you can provide the argument --aws-profile

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

    However, in your case, another option could be to use "per stage" profile:

    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