- 文档首页
API 网关
用户指南
插件中心
自定义插件
创建 Lua 插件
创建 Lua 插件
通过自定义 Lua 插件,您可以实现请求头修改、响应体处理、日志输出、流量标记等定制化功能,无需编译和上传二进制文件,即可快速完成轻量级业务扩展。本文介绍如何创建 Lua 插件。
说明
【邀测·申请试用】:该功能目前处于邀测阶段,如需使用,请联系您的客户经理。
Lua 是一种轻量级、高效的嵌入式脚本语言,广泛应用于网关代理扩展开发领域。Lua 插件通过 Envoy 原生的机制,允许您在请求和响应的处理链路中插入自定义逻辑。Lua 插件具有以下特点:
- 开发简单:无需 SDK 依赖,直接参考 Envoy Lua Filter API 即可编写脚本,详情请参见 Lua。
- 部署快捷:在控制台直接输入 Lua 代码,无需编译构建流程。
- 热更新:插件配置变更后即时生效,无需重启网关实例。
- 仅标准型网关实例支持创建 Lua 插件,弹性网关和 Serverless 网关不支持该能力。
- 自定义插件能力需要网关为 4.3.7 及以上版本。
- 在左侧导航栏 实例管理 下拉框中选择目标实例后,单击 插件中心。
- 在 插件中心 页面,选择 自定义插件 > 安装自定义插件 ,配置自定义插件的参数。
支持查看插件的信息及状态等内容,创建完成后插件默认为已启用。
Lua 插件通过实现以下两个入口函数与 Envoy 交互:
- envoy_on_request(request_handle):在请求路径上调用,用于处理入站请求。
- envoy_on_response(response_handle):在响应路径上调用,用于处理出站响应。
以下示例为一个基础的 Lua 插件,功能为将请求体和响应体的大小分别添加到请求头和响应头中,并删除响应中名为foo的头部。
以下示例使用 JSON 为例,示例配置包含三条数据映射规则,支持从指定字段或请求体 JSON 路径提取数据,可对源值进行 Base64 解码处理后,分别写入 HTTP 请求头与请求体指定 JSON 节点,实现网关转发时请求头、请求体参数的跨位置拷贝与数据解码转换。
最近更新时间:2026.08.06 14:06:38