Nginx Kong API网关-在自定义插件中读取请求正文

Nginx Kong API网关-在自定义插件中读取请求正文,nginx,openresty,kong,lua-ngx-module,kong-plugin,Nginx,Openresty,Kong,Lua Ngx Module,Kong Plugin,我试图通过以下方式读取自定义插件中的请求正文 我收到以下错误 2019/03/14 21:57:55 [error] 14039#0: *45 lua entry thread aborted: runtime error: /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:66: no phase in kong.ctx.core.phase stack traceback: coroutine 0: [C]: in fu

我试图通过以下方式读取自定义插件中的请求正文

我收到以下错误

2019/03/14 21:57:55 [error] 14039#0: *45 lua entry thread aborted: runtime error: /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:66: no phase in kong.ctx.core.phase
stack traceback:
coroutine 0:
        [C]: in function 'error'
        /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:66: in function 'check_phase'
        /usr/local/share/lua/5.1/kong/pdk/request.lua:594: in function 'get_body'
        .../Apps/troop/kong/plugins/customlog/handler.lua:72: in function <.../Apps/troop/kong/plugins/customlog/handler.lua:62>, context: ngx.timer, client: 127.0.0.1, server: 0.0.0.0:8000
Can anyone help me understand the problem here? I need to log the request body in my plugin.
2019/03/14 21:57:55[错误]14039#0:*45 lua入口线程中止:运行时错误:/usr/local/share/lua/5.1/kong/pdk/private/phases.lua:66:kong.ctx.core.phase中无阶段
堆栈回溯:
协同程序0:
[C] :在函数“error”中
/usr/local/share/lua/5.1/kong/pdk/private/phases。lua:66:功能中的“检查阶段”
/usr/local/share/lua/5.1/kong/pdk/request.lua:594:in函数“get_body”
…/Apps/force/kong/plugins/customlog/handler.lua:72:函数中,上下文:ngx.timer,客户端:127.0.0.1,服务器:0.0.0.0:8000
有人能帮我理解这里的问题吗?我需要在我的插件中记录请求主体。

有人能帮我理解这里的问题吗?我需要在我的插件中记录请求主体。

该调用只能在“重写、访问或管理api”阶段调用

查看日志输出,您试图调用它的上下文是ngx.timer,它甚至没有被Kong包装为它的上下文之一。(更多信息)


您可以做的是在一个可以调用它的阶段调用“kong.request.get_body()”,将其存储在一个临时变量中(使用“kong.ctx.plugin”对象),然后在所述插件的“日志”阶段使用它。

该调用只能在“重写、访问或管理api”阶段调用

查看日志输出,您试图调用它的上下文是ngx.timer,它甚至没有被Kong包装为它的上下文之一。(更多信息)

您可以做的是在一个可以调用它的阶段调用“kong.request.get_body()”,将它存储在一个临时变量中(使用“kong.ctx.plugin”对象),然后在所述插件的“日志”阶段使用它

2019/03/14 21:57:55 [error] 14039#0: *45 lua entry thread aborted: runtime error: /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:66: no phase in kong.ctx.core.phase
stack traceback:
coroutine 0:
        [C]: in function 'error'
        /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:66: in function 'check_phase'
        /usr/local/share/lua/5.1/kong/pdk/request.lua:594: in function 'get_body'
        .../Apps/troop/kong/plugins/customlog/handler.lua:72: in function <.../Apps/troop/kong/plugins/customlog/handler.lua:62>, context: ngx.timer, client: 127.0.0.1, server: 0.0.0.0:8000
Can anyone help me understand the problem here? I need to log the request body in my plugin.