在科技快速发展的今天,API 配置管理显得尤为重要。怎样高效实现 API 配置管理,Apache APISIX 的定制开发带来了解决思路。
管理后台需求
运维工作里,有一个管理后台入口非常关键。可以让运维同学在 UI 界面操作所有 http api 路由等配置。以前靠传统 NGINX 配置 + reload 方式,效率低。现在有了这样的管理后台,动态 API 调用能让常见资源修改实时生效,大大提升工作效率。
灰度发布支持
新建或编辑路由规则时,直接发布到线上风险大。所以需要支持灰度发布到指定网关实例,用于仿真或局部测试。目前 Apache APISIX 没内置该支持,需要定制开发实现,保障上线前的安全性和稳定性。
定制开发目标
定制开发目标清晰,要完全零代码、UI 化。七层 HTTP API 服务的创建、编辑、更新、上下线等,都在 Dashboard 完成。运维调用 API 批量导入服务时,能调用 H5 Dashboard 的 API,统一工作流,提高工作规范性。
灰度发布功能实现
灰度发布完整功能,不仅管理后台要支持,网关实例也要暴露 API。网关层面发布 API 接收数据后,worker 进程校验合法性,再广播给所有 worker 进程。停用流程和灰度发布类似,通过 DELETE 方法调用 API,work 进程检测 route 表。
脚本导入方式
很多运维习惯用脚本导入服务,管理后台暴露出 Go Import HTTP API。运维在 Bash Script 脚本文件填写 token、SaaS ID、UID 等,就能快速导入服务到管理后台,兼顾了不同运维人员的操作习惯。
代码修改与功能扩展
部分定制模块初始化优先加载,可减少对 Apache APISIX 代码的入侵,只需修改 NGINX.conf 文件。以前不支持 Consul KV 服务发现机制,要在网关层添加 consul_kv.lua 模块,管理后台提供 UI 界面,处理通用服务发现模块等问题。
你在实际使用 Apache APISIX 时,遇到过哪些类似的定制需求?不妨点赞、分享本文,并在评论区留言交流!