配置

软件设计通常会将配置与代码进行分离,把易变内容、不同环境参数等提炼到应用配置中进行管理,具体配置方式一般会以文件、启动参数或环境变量的形式存在。

Erda 平台提供了两种配置:

  • 应用构建 (打包) 配置
  • 应用运行时配置

应用构建配置是在应用编译、构建、打包阶段提供的,构建打包结束后配置项将固化在软件包中,如果配置变更,需要重新打包应用。后者在应用部署启动阶段提供,大部分应用配置会采用此种方式,比如: mysql 连接地址,业务功能开关配置等。

本文重点介绍应用运行时配置

配置途径

运行时配置有两种配置途径:

  • 通过 dice.yml 的 envs 关键字进行配置
  • 通过 应用设置 控制台界面配置

注意

两种途径写入的配置项最终都是通过环境变量(不是文件,也不是启动参数)的方式提供给应用程序使用,所以应用程序需要采用相应的方式从环境变量中读取配置项。环境变量的读取方式每种开发语言都有提供,都略有不同。

dice.yml envs 关键字

通过全局 envs 配置

  1. envs:
  2. TEST_ENV: test
  3. TEST_ENV2: test2

通过 service 级 envs 配置

  1. services:
  2. web:
  3. envs:
  4. TEST_ENV: test
  5. TEST_ENV2: test2

注意

services 下的 web 关键字只是此处的一个举例,web 是一个 service 名字。

应用设置

应用设置入口:

DevOps 平台 -> 项目 -> 应用 -> 应用设置 -> 部署中心 -> 参数设置

配置 - 图1

对于值类型的配置, 会在容器内作为环境变量存在, 可用 env 命令查看 对于文件类型的配置, 文件位于容器内 /init-data 目录下, 文件名为配置时的 key 值, 文件内容即为上传的文件, 可进入容器控制台查看

优先级

对于一个应用服务,优先级按如下顺序由高到低。

  1. 平台环境变量,比如 SELF_HOST, <被发现者服务名大写>_HOST, <被发现者服务名大写>_PORT, ERDA_*
  2. dice.yml service 级 envs
  3. Addon 环境变量,比如: MYSQL_HOST, REDIS_PORT
  4. 应用设置 中的环境级配置
  5. dice.yml 全局 envs

蓝绿部署配置

只有生产环境默认是开启蓝绿部署配置的,其他环境如需要开启的话请联系平台技术支持团队进行更改。

下一步推荐学习