feat(client): 添加 Python 客户端及示例应用
- 新增 python-client 模块,提供 ConfigClient 配置拉取、定时同步、变更监听 - 使用 pyaes 替代 cryptography 实现 AES 解密,避免编译问题 - 新增 python-client-demo Flask 示例应用 - .gitignore 添加 Python 相关忽略规则
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# Kenaito Config Center Python Client
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
cd python-client
|
||||
pip3 install -e .
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
```python
|
||||
from kenaito_conf import Config, ConfigClient
|
||||
|
||||
config = Config(
|
||||
base_url="http://localhost:8080",
|
||||
app_name="my-app",
|
||||
env="daily",
|
||||
sync_interval=30,
|
||||
)
|
||||
|
||||
client = ConfigClient(config)
|
||||
|
||||
# 监听配置变更
|
||||
def on_change(changed):
|
||||
for k, v in changed.items():
|
||||
print(f"config changed: {k} = {v}")
|
||||
|
||||
client.on_change(on_change)
|
||||
|
||||
# 启动客户端(拉取配置 + 开启定时同步)
|
||||
client.start()
|
||||
|
||||
# 获取配置
|
||||
value = client.get("database.host")
|
||||
all_configs = client.get_all()
|
||||
|
||||
# 停止
|
||||
client.stop()
|
||||
```
|
||||
|
||||
## 配置项
|
||||
|
||||
| 参数 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| `base_url` | 配置中心地址 | 必填 |
|
||||
| `app_name` | 应用名称 | 必填 |
|
||||
| `env` | 环境(dev/daily/prod) | `dev` |
|
||||
| `version` | 配置版本 | `latest` |
|
||||
| `token` | 认证令牌 | 空 |
|
||||
| `sync_interval` | 同步间隔(秒) | `60` |
|
||||
| `ignore_global` | 是否忽略全局配置 | `False` |
|
||||
| `cache_dir` | 本地缓存目录 | `.` |
|
||||
|
||||
## Demo
|
||||
|
||||
```bash
|
||||
cd python-client-demo
|
||||
pip3 install -r requirements.txt
|
||||
python3 app.py
|
||||
```
|
||||
|
||||
Demo 默认监听 `8082` 端口,访问 `http://localhost:8082/` 查看配置。
|
||||
|
||||
环境变量覆盖:
|
||||
|
||||
| 环境变量 | 说明 | 默认值 |
|
||||
|----------|------|--------|
|
||||
| `SERVER_PORT` | 服务端口 | `8082` |
|
||||
| `KENAITO_BASE_URL` | 配置中心地址 | `http://localhost:8080` |
|
||||
| `KENAITO_APP_NAME` | 应用名称 | `kenaito-springboot-demo` |
|
||||
| `KENAITO_PROFILE` | 环境 | `daily` |
|
||||
| `KENAITO_VERSION` | 配置版本 | `latest` |
|
||||
| `KENAITO_TOKEN` | 认证令牌 | 空 |
|
||||
| `KENAITO_SYNC_INTERVAL` | 同步间隔(秒) | `30` |
|
||||
| `KENAITO_CACHE_DIR` | 缓存目录 | `.` |
|
||||
Reference in New Issue
Block a user