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:向正常服務發送請求

以下 curl 命令的輸出應傳回 200,因為 Lua 程式碼選擇了正常服務。

$ 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 程式設計語言。