当我们需要把 Malagu 应用部署到不同的云厂商的时候,我们需要通过一些方式提供 AKSK 给框架,框架使用 AKSK 部署到对应的云计算平台。不同的云厂商,会有不同的适配器,但是在 AKSK 的配置上会尽可能保持统一。框架提供如下方式配置 AKSK:全局配置文件 < 项目根下的 < .env 文件 < 环境变量 < 组件属性配置文件。框架提供了一个 malagu config 命令方便我们快速配置全局配置文件。

全局配置文件

全局配置文件,一般不需要我们手动创建。当我们在执行部署命令的时候,框架发现当前环境下没有配置 AKSK,命令行将主动提示我们需要输入 AKSK 相关的信息,输入完后,自动保存到全局配置文件中。全局配置文件位置为 ~/.malagu ,不同云厂商分别对于着不同的目录。如下所示:

  • 阿里云: ~/.malagu/alibaba/profile.yml
  • 腾讯云: ~/.malagu/tencent/profile.yml
  • AWS: ~/.malagu/aws/profile.yml

绝大部分情况下,我们无需手动去配置全局配置文件,Malagu 的命令行工具提供了一个命令 malagu config 方便我们配置, malagu config 会根据项目的依赖情况,自动选择合适的云平台配置文件进行配置。例如,项目中依赖了 @malagu/fc-adapter 模块,则自动配置为阿里云函数计算平台的账号信息。

项目下的 .env 文件

当我们想让某个项目拥有独立的 AKSK 的时候,我们可以在项目根目录下面放置一个 .env 文件,通过 .env 文件配置 AKSK,.env 文件内容,如下所示:

  1. MALAGU_REGION=cn-hangzhou
  2. MALAGU_ACCESS_KEY_ID=xxxxx
  3. MALAGU_ACCESS_KEY_SECRET=xxxxxx
  4. MALAGU_ACCOUNT_ID=123456

环境变量

分别设置一下相关环境变量:

  1. MALAGU_REGION=cn-hangzhou
  2. MALAGU_ACCESS_KEY_ID=xxxxx
  3. MALAGU_ACCESS_KEY_SECRET=xxxxxx
  4. MALAGU_ACCOUNT_ID=123456

组件属性

Malagu 框架的组件属性是通过 malagu-[mode].yml 配置,配置方式如下:

  1. malagu:
  2. faas-adapter:
  3. credentials:
  4. accessKeyId: xxxxxx
  5. accessKeySecret: xxxxxx
  6. region: cn-hangzhou
  7. account:
  8. id: 123456

注意事项

  • AKSK 属于敏感信息,切记不要将该信息提交到代码仓库。
  • 腾讯云和 AWS 可以不同提供 account 信息,阿里云必须提供。
  • 组件属性方式配置,尽量配置为后端组件属性
  • 在 CICD 环境中,可以使用环境变量方式提供 AKSK