Apache APISIX Go 插件运行器(apisix-go-plugin-runner)使用教程
1. 项目目录结构及介绍
apisix-go-plugin-runner 的目录结构如下:
cmd/go-runner
├── main.go // 入口文件,示例程序的主函数
├── main_test.go // 主函数的测试代码
├── plugins
│ ├── say.go // 示例插件,用于“打招呼”的功能
│ └── say_test.go // 示例插件的测试代码
└── version.go // 版本信息相关代码
这个项目的主要部分是 cmd/go-runner
目录,其中包含了使用 Go Runner SDK 开发的一个示例。main.go
是入口点,展示了如何集成和执行 Go 插件。plugins
文件夹包含了开发自定义插件的例子。
2. 项目启动文件介绍
main.go 文件是项目的核心,它定义了如何启动 Go 运行时并处理接收到的请求。在实际应用中,你需要在这个文件中实现你的业务逻辑,比如加载和执行你的 Go 插件。
以下命令可以编译示例代码:
make build
编译完成后,会在指定目录下生成可执行文件 go-runner
。
3. 项目的配置文件介绍
为了使 Apache APISIX 能够与 apisix-go-plugin-runner
配合工作,需要在 APISIX 的配置文件 conf/config.yaml
中进行相应的设置。这通常涉及到以下两个关键配置项:
-
ext-plugin: 这个字段指定了外部插件运行器的相关命令,如:
ext-plugin: cmd: ["/path/to/apisix-go-plugin-runner/go-runner", "run"]
确保替换
/path/to/apisix-go-plugin-runner/go-runner
为你的可执行文件的实际路径。 -
path_for_test (可选): 在开发过程中,如果你希望独立运行
apisix-go-plugin-runner
,可以使用这个选项来指定一个测试路径和套接字,例如:ext-plugin: path_for_test: /tmp/runner.sock
然后,启动或重启 Apache APISIX 服务,它将带着配置的 Go 插件运行器一起启动。若在开发模式下,还需要单独以特定方式启动 go-runner
:
APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock /path/to/go-runner run
确保 APISIX_LISTEN_ADDRESS
的值与 APISIX 配置中的 path_for_test
值匹配。
以上就是关于 Apache APISIX Go 插件运行器的基本配置和使用指南。通过这些步骤,你可以结合自己的 Go 插件,实现与 APISIX 的集成,扩展其功能。