Логирование ответа с использованием контроллера входящего трафика nginx

Логирование ответа с использованием контроллера входящего трафика nginx

В целях регулирования я пытаюсь регистрировать весь ответ при использовании контроллера входящего трафика nginx для Kubernetes. Из документации и других ответов здесь я использую директиву body_filter_by_lua_block.

Моя карта конфигурации для настройки выглядит так

apiVersion: v1
kind: ConfigMap
metadata:
 name: nginx-configuration
 namespace: ingress-nginx
 labels:
   app.kubernetes.io/name: ingress-nginx
   app.kubernetes.io/part-of: ingress-nginx
data:
 server-snippet: | 
   lua_need_request_body on;

   set $resp_body '';
   body_filter_by_lua_block {
       local resp_body = string.sub(ngx.arg[1], 1, 1000)
       ngx.ctx.buffered = (ngx.ctx.buffered or "") .. resp_body
       if ngx.arg[2] then
           ngx.var.resp_body = ngx.ctx.buffered
       end
   }
 log-format-upstream: |
   Response body: $resp_body

При получении запроса регистрируется следующее:

Response body:

Кажется, $resp_body пуст. У меня есть подозрение, что это может быть связано с тем, что body_filter_by_lua_block запускается позже, чем ведение журнала, однако он должен запускаться в фазе контента, тогда как ведение журнала должно быть в более поздней фазе ведения журнала.

Возможно, я упускаю что-то очевидное, но, по-моему, я перепробовал большинство комбинаций.

Связанный контент