You need to enable JavaScript to run this app.
文档中心
API 网关

API 网关

复制全文
下载 pdf
自定义插件
创建 WASM 插件
复制全文
下载 pdf
创建 WASM 插件
通过自定义 WASM 插件,您可以自行编写网关处理逻辑,将自定义规则生效于实例、服务、路由等不同级别,从而实现个性化的流量管控。本文介绍如何创建和配置 WASM 插件。​
说明​
【邀测·申请试用】:该功能目前处于邀测阶段,如需使用,请联系您的客户经理。​
背景信息​
WASM 是一种可移植、体积小、加载快的二进制执行令格式,支持将 C++、Go、Rust 等多种编程语言编写的程序编译为可在沙箱环境中高效执行的字节码。在 API 网关中,WASM 插件允许您使用 Go 语言自行编写网关扩展逻辑(如自定义鉴权、流量管控、请求改写等),编译为 .wasm 二进制文件后上传至控制台,即可在网关数据面加载并执行。​
使用限制​
  • 仅标准型网关实例支持 WASM 插件,弹性网关和 Serverless 网关暂不支持。​
  • 当前仅支持 Go 语言编写 WASM 插件,推荐使用 Go 1.24 及以上版本进行编译。​
  • 自定义插件能力需要网关为 4.3.7 及以上版本。​
前提条件​
  • 已创建标准型网关实例,详情请参见 创建实例。​
  • 已获取 WASM Go SDK,并完成插件代码的开发和编译。​
操作步骤​
步骤一:安装 WASM 自定义插件​
  1. 登录 API 网关控制台。​
  1. 在顶部导航栏,选择目标地域。​
  1. 在左侧导航栏 实例管理 下拉框中选择目标实例后,单击 插件中心。​
  1. 在 插件中心 页面,选择 自定义插件 > 安装自定义插件 ,配置自定义插件的参数。​
  • ​
    配置项​
    说明​
    插件标识(Key)​
    自定义插件的标识。支持英文大小写字母、下划线(_)、短横线(-)和英文句号(.),长度不超过 30 个字符。​
    插件别名​
    您可以根据业务需要选择是否设置插件别名,配置后自定义插件将显示为该名称。​
    资源类型​
    选择 WASM。​
    WASM 文件​
    上传 WASM 插接配置文件。​
    版本​
    插件版本号,默认值为 1.0.0。后续功能迭代时可递增版本号。​
    版本说明​
    当前插件版本的变更说明。​
    ​
  1. 单击 确定,完成配置。​
步骤二:创建插件​
  1. 在上述安装的 自定义插件 页面,单击 创建插件。​
  1. 在创建插件页面,完成以下配置,然后单击 确定。​
  • ​
    配置项​
    说明​
    生效级别​
    选择插件的生效级别。包括:实例级别、服务级别、路由级别。​
    所属实例​
    显示插件所属的 API 网关实例名称。​
    所属服务​
    生效级别选择 服务级别,在下拉菜单中选择插件所属服务。​
    所属路由​
    生效级别选择 路由级别,在下拉菜单中选择插件所属路由。​
    备注​
    您可以根据业务需要选择是否编辑备注内容,例如插件用途等,便于后期识别。​
    插件配置​
    配置自定义插件的生效逻辑。支持 JSON 和 YAML 进行配置。​
    ​
结果验证​
支持查看插件的信息及状态等内容,创建完成后插件默认为已启用。​
​​​
WASM 插件配置示例​
以下示例使用 JSON 为例,示例配置包含三条数据映射规则,支持从指定字段或请求体 JSON 路径提取数据,可对源值进行 Base64 解码处理后,分别写入 HTTP 请求头与请求体指定 JSON 节点,实现网关转发时请求头、请求体参数的跨位置拷贝与数据解码转换。​
​
{​
"transformations": [​
{​
// 转换规则1:提取 instance_address 字段,Base64 解码后写入请求头 x-instance-address​
"source": {​
"query": "instance_address"​
},​
"target": {​
"header": "x-instance-address"​
},​
"codec": "BASE64_DECODE"​
},​
{​
// 转换规则2:提取 instance_address 字段,Base64 解码后写入请求体 JSON 根路径 /a 节点​
"source": {​
"query": "instance_address"​
},​
"target": {​
"body_json_pointer": "/a"​
},​
"codec": "BASE64_DECODE"​
},​
{​
// 转换规则3:从请求体 JSON /b 节点取值,直接赋值到请求头 x-b,不做编解码处理​
"source": {​
"body_json_pointer": "/b"​
},​
"target": {​
"header": "x-b"​
}​
}​
]​
}​
​
​
最近更新时间:2026.08.06 14:06:43
这个页面对您有帮助吗?
有用
有用
无用
无用