卖域名做非法网站,企业微信管理软件,网站建设添加背景命令,手机网站前端用什么做接到老大需求#xff1a;需要对cookie进行操作#xff0c;遂查询apisix的自带插件#xff0c;发现有#xff0c;但不满足#xff0c;于是自己开发了一个插件并部署#xff0c;把开发部署流程写在这里打个日志怕以后忘掉。
一、需求
插件很简单#xff0c;就是在reques…接到老大需求需要对cookie进行操作遂查询apisix的自带插件发现有但不满足于是自己开发了一个插件并部署把开发部署流程写在这里打个日志怕以后忘掉。
一、需求
插件很简单就是在request和response中打上自己的标记
二、编写插件
插件怎么编写规范是什么我就不一一赘述了点击这里查看官方文档已经很详细。
把我写的也粘一下把:
local core require(apisix.core)
local plugin_name cookie-pluginlocal schema {type object,properties {},
}local _M {version 0.1,priority 0, -- 设置插件优先级name plugin_name,schema schema,
}function _M.check_schema(conf)return core.schema.check(schema, conf)
endfunction _M.access(conf, ctx)-- 添加请求头core.request.set_header(ctx, cookie-plugin, success)
endfunction _M.header_filter(conf, ctx)-- 添加响应头core.response.set_header(cookie-plugin, success)
endreturn _M三、部署插件
最坑的就是怎么部署官方有文档但看的一头雾水详细介绍部署 先介绍两概念Admin和DashboardAdmin提供了API能力Dashboard提供了可视化能力
3.1、放置lua脚本至插件文件夹下
把lua脚本改为你写的plugin_name例如我上边写的就是cookie-pluginlua,然后放到Admin服务的plugins文件夹底下一般在/usr/local/apisix/apisix/plugins/直接放底下就行当然也可以自己写路径指定但你的config.yaml得自己指定路径开头官方文档有介绍。
3.2、修改config.yaml文件
在config.yaml的plugins里加插件名
plugins: - cookie-plugin这里除了这个还需要把config-default.yaml里的插件挪过来不然之后就你这个插件能用官方插件就用不了了最终效果
3.2、刷新插件
当然可以apisix stop之后再apisix start启动但有更优雅的方式不需要重启可以热加载插件
curl --location --request PUT http://自己的IP:端口/apisix/admin/plugins/reload \
--header X-API-KEY: 你自己的key 这个时候apisix的插件已经可以用了以刚才我们的插件为例添加一个路由
curl http://127.0.0.1:9180/apisix/admin/routes/1 -X PUT -d
{uri: /example,plugins: {cookie-plugin: {}},upstream: {type: roundrobin,nodes: {httpbin.org:80: 1}}
}请求 curl -i http://127.0.0.1:9080/example 可以看到response中已有cookie-plugin: success证明插件生效。
3.4、生成schema.json
这个schema.json是Dashboard提供可视化需要的文件也就是现在说api已经可以使用了但是如果你想在Dashboard配置是配置不了的会报插件不存在这时候是因为之前的schema.json对新插件没有描述这个也不用自己写查看官方文档
curl 127.0.0.1:9090/v1/schema schema.json3.5、替换schema.json
复制到Dashboard的config目录下替换就行之后重启Dashboard服务就ok 好了这样一个apisix使用lua脚本自定义插件和部署就可以了