【问题标题】:Serverless: deploy particular profile无服务器:部署特定配置文件
【发布时间】:2023-03-27 05:40:01
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: serverless-framework


    【解决方案1】:

    在最新版本的无服务器(当前为 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
    

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

    【讨论】:

      【解决方案2】:

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

      在 Linux 和 OSX 上:

      AWS_PROFILE=suku sls deploy
      

      在 Windows 上:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2011-05-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-11
          • 2023-01-29
          • 1970-01-01
          • 2014-07-19
          相关资源
          最近更新 更多