首页 > 其他分享 >apisix网关使用自研插件流程

apisix网关使用自研插件流程

时间:2023-04-23 16:24:04浏览次数:122  
标签:插件 自研 网关 runner go apache apisix

1. 关于apisix网关插件

apisix插件分为内置插件和自编插件,本文主要介绍使用自研插件的流程,内置插件使用方法参考官方文档

内置插件官方文档:https://apisix.apache.org/zh/docs/apisix/plugins/batch-requests/

2. 使用自研插件的实现步骤

apisix支持多种语言自研插件,本文主要介绍使用go语言编写自研脚本。

自研插件官方文档:https://apisix.apache.org/zh/docs/apisix/external-plugin/

自研插件使用前期配置工作

一,在value.yaml中增加配置Plugin Runner

image

二,添加自研插件

1,构建包含自研插件的apisix镜像

clone项目到本地

git clone https://github.com/apache/apisix-go-plugin-runner.git

cmd文件夹是存放插件的目录,我们开发的Go插件api_signature.go将放在cmd/go-runner/plugins这里。看一下cmd文件目录组织方式

root@JamesLee:/mnt/d/code/apisix-go-plugin-runner# tree cmd
cmd
└── go-runner
    ├── main.go
    ├── main_test.go
    ├── plugins
    │   ├── fault_injection.go
    │   ├── fault_injection_test.go
    │   ├── limit_req.go
    │   ├── limit_req_test.go
    │   ├── response_rewrite.go
    │   ├── response_rewrite_test.go
    │   ├── api_signature.go
    │   ├── say.go
    │   └── say_test.go    
    └── version.go

插件代码完成后,在项目根目录下进行make build, 正常情况下就在本目录下生成二进制文件go-runner。

build 包含自研插件的镜像

Dockerfile如下

FROM apache/apisix:3.2.0-debian 
COPY ./go-runner /usr/local/apisix-go-plugin-runner/go-runner

docker build -f Dockerfile -t apache/apisix:3.2.0-debian-gogogo .

apisix使用apache/apisix:3.2.0-debian-gogogo镜像

三,使用自研插件

创建路由时增加plugins字段即

"plugins": {
    "ext-plugin-pre-req": {
      "allow_degradation": false,
      "conf": [
        {
          "name": "api-signature",
          "value": "{\"ccc\":\"eeee\"}"
        }
      ]
    }

也可通过dashboard添加插件,需在插件ext-plugin-pre-req数据编辑器内输入如下内容

{
  "_meta": {
    "disable": false
  },
  "conf": [
    {
      "name": "api-signature",
      "value": "{\"ccc\":\"eeee\"}"
    }
  ]
}

至此,添加自研插件配置过程完毕,更多apisix使用细节请参考官方文档

标签:插件,自研,网关,runner,go,apache,apisix
From: https://www.cnblogs.com/peng-zone/p/17346854.html

相关文章

  • Android Tencent Shadow 插件接入指南
    原文地址www.jianshu.com撒盐一、clone仓库二、测试编译三、将Shadow库发布到本地仓库四、宿主接入1添加依赖2添加代理Activity主题3清单文件注册代理Activity4在宿主中创建PluginManager管理工具a创建PluginManager文件升级器b创建插件进程服务c......
  • Adobe Photoshop 2023(MAC+Windows) +AI插件auto Photoshop stable diffusion plugin
    Adobe图像处理软件Photoshop2023正式版(24.1.1)2023年01月版发布。AdobePhotoshop2023破解版(简称PS)是一款全球流行的专业图像处理软件及照片和设计软件。AdobePhotoshop中文破解版是AdobeCreativeCloud创意云桌面程序中心的图形设计软件热门产品,它是平面设计领域和数......
  • jQuery插件
    学习要点:插件概述2.验证插件3.自动完成插件4.自定义插件(Plugin)也成为 jQuery 扩展(Extension),是一种遵循一定规范的应用程序接口编写出来的程序。目前jQuery 插件已超过几千种,由来自世界各地的开发者共同编写、验证和完善。而对于 jQuery 开发者而言,直接使用这些插件......
  • bootstrap日期插件datetimepicker的简单使用
    <!DOCTYPEHTML><html><head><linkhref="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css"rel="stylesheet"><linkrel="stylesheet"type="text/cs......
  • Java使用maven-invoker插件进行maven相关操作
    官方文档地址:https://maven.apache.org/shared/maven-invoker/index.htmlApacheMavenInvoker在许多情况下,工具(包括Maven本身)可能希望在干净的环境中启动Maven构建。为什么呢?也许您希望避免Maven插件产生的副作用污染当前系统环境。也许您想从与当前${user.dir}不同的工作目......
  • QGIS中导入dwg文件并使用GetWKT插件获取绘制元素WKT字符串以及QuickWKT插件实现WKT显
    场景QGIS在Windows上下载安装与建立空间数据库连接:在上面实现QGIS的安装之后,版本是3.26.3。业务需求:1、在dwg文件上绘制多边形区域,并获取绘制区域的wkt字符串。2、根据已知的wkt字符串,在dwg上显示。如果新建多边形图层参考如下QGIS怎样设置简体中文以及新建可编辑的多边形的图层:......
  • 一个可用于生产项目 基于 .NET 6 自研ORM
    FastFramework作者Mr-zhong代码改变世界....一、前言FastFramework基于NET6.0封装的轻量级ORM框架支持多种数据库SqlServerOracleMySqlPostgreSqlSqlite优点:体积小、可动态切换不同实现类库、原生支持微软特性、流畅API、使用简单、性能高、模型数据绑定采用......
  • Visual Studio Code 常见的配置、常用好用插件以及【vsCode 开发相应项目推荐安装的插
    一、VsCode常见的配置1、取消更新把插件的更新也一起取消了2、设置编码为utf-8:默认就是了,不用设置了3、设置常用的开发字体:Consolas,默认就是了,不用设置了字体对开发也很重要,不同字体,字母形态都不太一样,尤其是标点符号,逗号和分号的区分,有的字体看着这两者就很像4、设置ctr+滚轮,改......
  • IDEA 用上这款免费 GPT4 插件,生产力爆表了
    大家好,我是一航!早前给大家分享过GPT的一些玩法,但是依旧有很多铁子没有掌握魔法的奥秘,始终没有用上;前两天,一兄台分享给我一款IDE插件:Bito-ChatGPT,安装就能直接在IDE中使用GPT,就算是不会魔法,同样也能使用;最重要是免费使用,速度也非常可观!Bito-ChatGPT插件是一款基于GPT(Gen......
  • vsCode添加插件方式
    vscode的几种安装插件方式1、联网正常的时候可以直接通过vsCode自带的工具直接搜索进行插件安装下载即可2、在有网络限制的时候,可以通过先下载的离线包进行安装插件vsCode下载离线包的地址:https://marketplace.visualstudio.com/vscode(到vscode官网,搜索想要的插件进行下......