【问题标题】:Is there a way to use multiple aws profiles to deploy(update) serverless stack?有没有办法使用多个 aws 配置文件来部署(更新)无服务器堆栈?
【发布时间】:2020-03-22 15:09:53
【问题描述】:

我们有一个由 3 到 4 名成员组成的团队,因此我们希望使用我们自己的人员 AWS 凭证进行无服务器部署或更新功能或资源,而无需创建新堆栈,而只需更新现有资源。有没有办法做到这一点?我知道我们可以为不同阶段设置 --aws-profile 和不同的配置文件。我也知道我们云只是将资源划分为微服务,然后部署或更新我们自己的部分。任何帮助表示赞赏。

【问题讨论】:

  • 欢迎来到堆栈溢出! “不创建新堆栈”是什么意思?请用正确的描述和你迄今为止尝试的方式更新你的答案。

标签: amazon-web-services aws-lambda amazon-cloudformation serverless-framework serverless


【解决方案1】:

这可以如下完成:

  • 如下添加profile配置,我将其命名为devProfile
service: new-service
provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  profile: devProfile

每个人都会在自己的机器下设置他们的凭据,如下所示:

aws configure --profile devProfile

如果你对不同的stage有不同的凭证,那么上面的无服务器sn-p可以通过参数化的方式实现,如下所示:

serverless.yml

custom:
  stages:
    - local
    - dev
    - prod
  # default stage/environment
  defaultStage: local
  # default AWS region
  defaultRegion: us-east-1
  # config file / region / stage
  configFile: ${file(./config/${opt:region,self:provider.region}/${self:provider.stage}.yml)}


Provider:
  ...
  stage: ${opt:stage, self:custom.defaultStage}
  ...
  profile: ${self:custom.configFile.aws.profile}
  ...

创建config/us-east-1/dev.yml

aws:
  profile: devProfile

config/us-east-1/prod.yml

aws:
  profile: prodProfile

【讨论】:

  • 感谢您提供有用的简报。
【解决方案2】:

听起来您已经知道该怎么做,但需要进行健全性检查。所以我会告诉你我和我认识的其他人是如何处理这个问题的。

我们在命令前加上 AWS_PROFILE 声明的环境变量,并使用 --stage 名称。

例如AWS_PROFILE=mycompany sls deploy --stage shailendra.

Google aws configure 获取有关如何设置使用 AWS_PROFILE 变量的 awscli 的示例。

我们还使用唯一 ID 命名 --stage,例如你的名字。这样,您和您的同事都有各自独立的 CloudFormation 堆栈,彼此独立工作,不会发生冲突。

【讨论】:

  • 谢谢你帮了我很多。
猜你喜欢
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 2018-02-04
  • 2019-12-20
  • 1970-01-01
  • 2021-02-08
  • 1970-01-01
  • 2014-08-11
相关资源
最近更新 更多