如何解决如何在 istio1.4 中使用 lua 脚本从 Envoy Filter 调用 REST API
我正在使用 istio 1.4.8 版本(由于某些组织决定保留此版本) 我需要从托管在另一个 EC2 实例上的 API 获得响应。根据响应,我需要决定继续过滤器还是响应错误。我最初尝试使用 minikube 在本地构建。当我应用特使过滤器时,我没有从 REST API 得到响应,它退出过滤器而没有继续下一阶段,即响应代码。 下面是我的 yaml 文件。请让我知道 yaml 文件中的任何问题以及如何更正它
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: ratelimit-envoy
namespace: default
spec:
meshConfig:
accessLogFile: /dev/stdout
workloadSelector:
labels:
app: ratelimit-pod
filters:
- filterName: envoy.lua
filterType: HTTP
listenerMatch:
listenerType: GATEWAY
listenerProtocol: HTTP
filterConfig:
inlineCode: |
function envoy_on_request(request_handle)
request_handle:logWarn("envoy_on_request")
local headers,body = request_handle:httpCall(
"lua_cluster",{
[":method"] = "GET",[":authority"] = "xyz.net",[":path"] = "/health"
},nil,5000)
request_handle:respond(
{[":status"] = "429"},"RateLimit Exceeded2")
end
clusters:
- name: lua_cluster
connect_timeout: 0.5s
type: strict_dns
lb_policy: round_robin
hosts:
- socket_address:
protocol: HTTP
address: "xyz.net"
port_value: 80
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。