Lua 集群指定器

在本例中,我们演示了如何将 Lua 集群指定器与 Envoy 代理一起使用。

示例 Envoy 代理配置包含一个 Lua 集群指定器插件,其中包含一个函数

  • envoy_on_route(route_handle)

提示

请参阅 Lua 集群配置文档,了解有关该函数的概述和文档。

步骤 1:构建沙箱

切换到 examples/lua-cluster-specifier 目录,并启动组合。

$ pwd
envoy/examples/lua-cluster-specifier
$ docker compose pull
$ docker compose up --build -d
$ docker compose ps

Name                                  Command                        State   Ports
--------------------------------------------------------------------------------------------
lua-cluster-specifier-proxy-1         /docker-entrypoint.sh /usr ... Up      10000/tcp, 0.0.0.0:10000->10000/tcp

步骤 2:向正常服务发送请求

由于 lua 代码选择了正常服务,因此以下 curl 命令的输出应返回 200。

$ curl -i localhost:10000/anything 2>&1 |grep 200
HTTP/1.1 200 OK

步骤 3:向假服务发送请求

如果指定请求头 header_key:fake,curl 将返回 503 响应,因为 Lua 代码将选择假服务。

$ curl -i localhost:8000/anything -H "header_key:fake" 2>&1 |grep 503
HTTP/1.1 503 Service Unavailable

另请参阅

Envoy Lua 集群指定器

了解有关 Envoy Lua 集群指定器的更多信息。

Lua

Lua 编程语言。