AgileConfig 輕量級配置中心 1.5 發佈 - 支持多環境配置

AgileConfig 從發佈到現在,收到不少同學的 issue 說需要多環境的支持。也就是一個應用在不同的環境下可以配置不同的配置項。這是一個非常有用的功能,就跟我們開發的時候會設置多個 appsettings.json 文件一樣,比如 appsettings.development.json 、appsetting.production.json 等等。那麼這次 1.5 版本就爲大家帶來了這個功能。
下面介紹下如何使用多環境配置功能。

運行控制檯節點

拉取最新的 latest 或者 release-1.5.0 的 docker 鏡像,運行控制檯節點即可支持多環境配置。

sudo docker run \
--name agile_config \
-e adminConsole=true \
-e db:provider=sqlite \
-e db:conn="Data Source=agile_config.db" \
-p 5000:5000 \
-v /etc/localtime:/etc/localtime \
#-v /your_host_dir:/app/db \
-d kklldog/agile_config:release-1.5.0

節點運行起來後,在配置項管理界面的右上角即可切換環境。
5foyh8.png

自定義環境

AgileConfig 默認內置了 DEV, TEST, STAGING, PROD 四個常用的環境,如果用戶覺得不夠用或者不想要那麼多環境的話可以進行自己定義。
找到數據庫的 agc_setting 表,對其中 id = environment 的行進行修改。配置名稱之間使用英文輸入狀態的逗號分隔。
5fostf.png

爲環境單獨配置數據庫

AgileConfig 默認情況下會把所有的配置項都存儲在 db:conn 指定的數據庫下面。但是對於多環境來說,集中式的配置存儲顯然不太合適。特別是對於生產環境來說不太可能跟開發測試環境都部署在同一個數據庫上。AgileConfig 支持對某個環境配置單獨的數據庫。
在啓動節點的時候爲某個環境單獨配置數據庫:

-e db:env:TEST:provider=mysql \
-e db:env:TEST:conn= "Database=agile_config_test;Data Source=192.168.0.111;User Id=dev;Password=dev@123;port=3306" \

-e db:env:PROD:provider=mysql \
-e db:env:PROD:conn= "Database=agile_config_prod;Data Source=192.168.0.1111;User Id=dev;Password=dev@123;port=3306" \

客戶端

爲配合 AgileConfig 1.5 版本請使用 AgileConfig.Client 1.2 及以上版本。

Install-Package AgileConfig.Client -Version 1.2.1

在配置文件上指定環境參數,如果不配置那麼默認爲 DEV 環境。

{
  "AgileConfig": {
    "appId": "test_app",
    "secret": "",
    "env": "DEV"
    "nodes": "http://localhost:5000",
    "name": "client1",
    "tag": "tag1",
  }
}

關於升級

如果從1.4版本升級上來的話,那麼請對以下表手動添加 env 字段 ,並且更新這個字段的值爲你想要設置的環境。

agc_config;
agc_config_published;
agc_publish_detail;
agc_publish_timeline;

以 mysql agc_config 表爲例:
alter table agc_config add env varchar(50);
update set agc_config set env = 'DEV' where 1=1;

最後

✨✨✨Github地址:https://github.com/dotnetcore/AgileConfig 開源不易,歡迎star✨✨✨

演示地址:http://agileconfig_server.xbaby.xyz/ 超級管理員賬號:admin 密碼:123456

關注我的公衆號一起玩轉技術

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章