context_regex_replace

context_regex_replace #

描述 #

context_regex_replace 过滤器用来通过正则表达式来替换修改请求上下文的相关信息。

配置示例 #

一个简单的示例如下:

flow:
  - name: test
    filter:
      - context_regex_replace:
          context: "_ctx.request.path"
          pattern: "^/"
          to: "/cluster:"
          when:
            contains:
              _ctx.request.path: /_search
      - dump:
          request: true

这个例子可以将请求 curl localhost:8000/abc/_search 替换为 curl localhost:8000/cluster:abc/_search

参数说明 #

名称类型说明
contextstring请求的上下文及对应的 Key
patternstring用于匹配替换的正则表达式
tostring替换为目标的字符串内容

支持修改的上下文变量列表如下:

名称类型说明
_ctx.request.uristring完整请求的 URL 地址
_ctx.request.pathstring请求的路径
_ctx.request.hoststring请求的主机
_ctx.request.bodystring请求体
_ctx.request.body_json.[JSON_PATH]stringJSON 请求对象的 Path
_ctx.request.query_args.[KEY]stringURL 查询请求参数
_ctx.request.header.[KEY]string请求头信息
_ctx.response.header.[KEY]string返回头信息
_ctx.response.bodystring返回响应体
_ctx.response.body_json.[JSON_PATH]stringJSON 返回对象的 Path