1

我是这个领域的新手。尝试使用 OPA [开放策略代理和 istio] 实现 lua 过滤器

为了实现一个简单的 poc,我创建了以下过滤器

 ############################################################
# Envoy External Authorization filter that will query OPA.
############################################################
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: ext-authz
  namespace: istio-system
spec:
  filters:
  - insertPosition:
      index: FIRST
    listenerMatch:
      listenerType: GATEWAY
      listenerProtocol: HTTP
    filterType: HTTP
    filterName: envoy.lua
    filterConfig:
      inlineCode: |
        function envoy_on_request(request_handle)
            request_handle:logWarn("envoy_on_request")
        end

        function envoy_on_response(response_handle)
            response_handle:logWarn("envoy_on_response")
            response_handle:headers():add("x-this","It works")
        end
---

当我执行我的 api 时,我能够在输出中获得更新的标头值。[似乎在过滤器链中调用了lua过滤器]

但我的问题是,我无法在容器日志中的任何地方找到日志“envoy_on_request”。

需要你的建议来找到日志……</p>

4

2 回答 2

0

你检查过 istio-proxy 容器吗?通常可以在那里找到 Envoy 日志。

于 2020-06-15T15:47:13.857 回答
0

在服务规范元数据注释中添加这一行应该会有所帮助 sidecar.istio.io/componentLogLevel: "lua:info"

于 2021-04-17T10:12:08.613 回答