# 参数配置

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

    Erda 平台提供两种配置:

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

    应用构建配置在应用编译、构建、打包阶段提供,构建打包结束后配置项将固化在软件包中,若配置变更,则需重新打包应用。应用运行时配置在应用部署启动阶段提供,多数应用配置均采用该方式,例如 MySQL 连接地址、业务功能开关配置等。

    本文将以应用运行时配置为例展开介绍。

    # 配置方式

    运行时可通过以下两种方式配置:

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

    提示

    以上两种方式写入的配置项最终均通过环境变量(非文件或启动参数)的方式提供至应用程序,因此应用程序需采用相应的方式从环境变量中读取配置项。不同开发语言的读取方式略有不同。

    # dice.yml envs 关键字

    # 通过全局 envs 配置

    envs:
      TEST_ENV: test
      TEST_ENV2: test2
    

    # 通过 service 级 envs 配置

    services:
      web:
        envs:
          TEST_ENV: test
          TEST_ENV2: test2
    

    提示

    1. 此处 services 下的 web 关键字仅为示例,web 为 service 名称。
    2. env 存在优先级,具体请参见 优先级

    # 应用配置

    进入 应用中心 > 环境部署 > 配置 > 选择环境/全局 > 选择应用

    对于值类型的配置,将在容器内作为环境变量存在,可通过 env 命令查看。

    对于文件类型的配置,文件位于容器的 /init-data 目录下,文件名为配置的 Key 值,文件内容即上传的文件,可进入容器控制台查看。

    # 优先级

    应用服务的优先级按如下顺序由高到低排列:

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

    # 蓝绿部署配置

    仅有生产环境默认开启蓝绿部署配置,其他环境如需开启请联系平台技术支持团队。