hf400159 commented on code in PR #1246: URL: https://github.com/apache/apisix-website/pull/1246#discussion_r932801840
########## blog/en/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,163 @@ +--- +title: "Release Apache APISIX 2.15" +authors: + - name: "Zexuan Luo" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "Sylvia" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- Release +- Custom plugin +- Plugin Review Comment: ```suggestion - API Gateway ``` ########## blog/zh/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,162 @@ +--- +title: "Apache APISIX 2.15 正式发布" +authors: + - name: "罗泽轩" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "苏钰" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- 版本发布 +- 插件配置 +- 自定义插件 +- 灵活性 +description: Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 +tags: [Community] +--- + +> Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 Review Comment: ```suggestion > Apache APISIX 2.15 版本发布!用户可以自定义插件优先级,自定义插件是否执行、自定义错误响应以及支持监控四层流量的指标等功能。 ``` ########## blog/zh/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,162 @@ +--- +title: "Apache APISIX 2.15 正式发布" +authors: + - name: "罗泽轩" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "苏钰" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- 版本发布 +- 插件配置 +- 自定义插件 +- 灵活性 +description: Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 Review Comment: ```suggestion description: API 网关 Apache APISIX 2.15 版本发布!用户可以自定义插件优先级,自定义插件是否执行、自定义错误响应以及支持监控四层流量的指标等功能。 ``` ########## blog/zh/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,162 @@ +--- +title: "Apache APISIX 2.15 正式发布" +authors: + - name: "罗泽轩" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "苏钰" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- 版本发布 +- 插件配置 +- 自定义插件 +- 灵活性 +description: Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 +tags: [Community] +--- + +> Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 + +<!--truncate--> + +从两年前发布第一个 2.0 版本开始,APISIX 已经发布了 15 个 minor 版本和许多个 patch 版本。作为 2.x 系列最后的一个 minor 版本,2.15 版本可以说是个承上启下的版本。 + +「承上」是因为该版本继续引入了更多的功能,使得插件配置更加灵活;「启下」则是因为该版本将会是 2.x 版本的最后一个 LTS 版本,后续 APISIX 就要向 3.0 版本进发了。更多细节一起来看下文吧! + + + +## 自定义插件优先级 + +新版本支持用户自定义插件的优先级,而非直接应用插件默认的优先级属性。 +有了这个功能,我们可以在某个特定的路由上调整某几个插件的执行顺序,从而打破之前插件优先级属性的束缚。 + +例如,在默认情况下,`serverless-post-function` 插件是在 `serverless-pre-function` 插件之后执行的。但是通过此功能,可以让 `serverless-post-function` 插件优先执行。配置示例如下: + +```json + { + "serverless-post-function": { + "_meta": { + "priority": 10000 + }, + "phase": "rewrite", + "functions" : ["return function(conf, ctx) + ngx.say(\"serverless-post-function\"); + end"] + }, + "serverless-pre-function": { + "_meta": { + "priority": -2000 + }, + "phase": "rewrite", + "functions": ["return function(conf, ctx) + ngx.say(\"serverless-pre-function\"); + end"] + } +} +``` + +如果一个插件配置中没有注明优先级,则会根据插件代码中的优先级属性值进行排序。 + +如果你在 Service 或者 Plugin Config 的插件配置中指定了插件的优先级,那么在合并到路由后依然生效。 + +### 自定义插件是否执行 + +除了能够调整执行顺序外,还可以动态决定插件是否需要执行。2.15 版本中引入了插件配置级别的过滤器,由过滤器的执行结果控制插件执行与否。 + +下方配置中,只有变量 `$status` 大于或等于 400 时,才会执行 `http-logger` 插件。这么一来,只有 4xx 和 5xx 的请求才会被报告到远端的 HTTP 日志服务器上。 + +```json +{ + "http-logger": { + "_meta": { + "filter": { + {"status", "!", "<", "400"} + } + }, + ... + } +} +``` + +同时,借助 APISIX 的另一个功能[自定义变量](https://apisix.apache.org/zh/docs/apisix/next/plugin-develop/#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E9%87%8F),则可以玩出更多花样。比如客户端地址为内网地址,则跳过某个 Logger 之类的场景。 + +### 自定义错误响应 + +该功能也是在具体插件层面配置的新功能,属于插件配置级别上的错误信息。 +如果需求方对特定路由上的错误响应有所要求,那么这一功能就能派上用场了。无论是什么插件,通过该配置都能设置一个固定的响应结果,避免因为插件内置的错误响应信息而带来困扰。 + +如下述配置所示,不管 `jwt-auth` 插件返回了什么错误信息,都会被改写成 "Missing credential in request" 返回给客户端。 + +```json +{ + "jwt-auth": { + "_meta": { + "error_response": { + "message": "Missing credential in request" + } + } + } +} +``` + +## 允许采集 Stream Route 上的指标 + +本版本中还进行了一个较大的改动,就是允许在 Stream Route 上采集 metrics 的指标,并通过 Prometheus 的接口暴露出来。 + +该功能默认为关闭状态,如果需要启用,请在 [APISIX-Base](https://apisix.apache.org/zh/docs/apisix/FAQ/#%E5%A6%82%E4%BD%95%E6%9E%84%E5%BB%BA-apisix-base-%E7%8E%AF%E5%A2%83) 版本上构建 APISIX,并在 `config.yaml` 中启用 `prometheus` 插件,示例如下: + +```yaml +stream_plugins: + - ... + - prometheus +``` + +在启用该插件后,即使只用 APISIX 来代理四层上的 TCP 流量,也会专门监听 9091 的端口,响应 Prometheus 发来的 HTTP 请求。 + +跟 HTTP 代理子系统部分的 `prometheus` 插件一样,下一步则是在需要采集指标的 Stream Route 上配置该插件: + +```shell +curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' Review Comment: ```suggestion curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 \ -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' ``` ########## blog/zh/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,162 @@ +--- +title: "Apache APISIX 2.15 正式发布" +authors: + - name: "罗泽轩" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "苏钰" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- 版本发布 +- 插件配置 +- 自定义插件 +- 灵活性 +description: Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 +tags: [Community] +--- + +> Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 + +<!--truncate--> + +从两年前发布第一个 2.0 版本开始,APISIX 已经发布了 15 个 minor 版本和许多个 patch 版本。作为 2.x 系列最后的一个 minor 版本,2.15 版本可以说是个承上启下的版本。 + +「承上」是因为该版本继续引入了更多的功能,使得插件配置更加灵活;「启下」则是因为该版本将会是 2.x 版本的最后一个 LTS 版本,后续 APISIX 就要向 3.0 版本进发了。更多细节一起来看下文吧! + + + +## 自定义插件优先级 + +新版本支持用户自定义插件的优先级,而非直接应用插件默认的优先级属性。 +有了这个功能,我们可以在某个特定的路由上调整某几个插件的执行顺序,从而打破之前插件优先级属性的束缚。 + +例如,在默认情况下,`serverless-post-function` 插件是在 `serverless-pre-function` 插件之后执行的。但是通过此功能,可以让 `serverless-post-function` 插件优先执行。配置示例如下: + +```json + { + "serverless-post-function": { + "_meta": { + "priority": 10000 + }, + "phase": "rewrite", + "functions" : ["return function(conf, ctx) + ngx.say(\"serverless-post-function\"); + end"] + }, + "serverless-pre-function": { + "_meta": { + "priority": -2000 + }, + "phase": "rewrite", + "functions": ["return function(conf, ctx) + ngx.say(\"serverless-pre-function\"); + end"] + } +} +``` + +如果一个插件配置中没有注明优先级,则会根据插件代码中的优先级属性值进行排序。 + +如果你在 Service 或者 Plugin Config 的插件配置中指定了插件的优先级,那么在合并到路由后依然生效。 + +### 自定义插件是否执行 + +除了能够调整执行顺序外,还可以动态决定插件是否需要执行。2.15 版本中引入了插件配置级别的过滤器,由过滤器的执行结果控制插件执行与否。 + +下方配置中,只有变量 `$status` 大于或等于 400 时,才会执行 `http-logger` 插件。这么一来,只有 4xx 和 5xx 的请求才会被报告到远端的 HTTP 日志服务器上。 + +```json +{ + "http-logger": { + "_meta": { + "filter": { + {"status", "!", "<", "400"} + } + }, + ... + } +} +``` + +同时,借助 APISIX 的另一个功能[自定义变量](https://apisix.apache.org/zh/docs/apisix/next/plugin-develop/#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E9%87%8F),则可以玩出更多花样。比如客户端地址为内网地址,则跳过某个 Logger 之类的场景。 + +### 自定义错误响应 + +该功能也是在具体插件层面配置的新功能,属于插件配置级别上的错误信息。 +如果需求方对特定路由上的错误响应有所要求,那么这一功能就能派上用场了。无论是什么插件,通过该配置都能设置一个固定的响应结果,避免因为插件内置的错误响应信息而带来困扰。 Review Comment: ```suggestion 如果需求方对特定路由上的错误响应有所要求,那么这一功能就能派上用场了。无论是什么插件,通过该配置都能设置一个固定的响应结果,避免因为插件内置的错误响应信息而带来困扰。 ``` ########## blog/zh/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,162 @@ +--- +title: "Apache APISIX 2.15 正式发布" +authors: + - name: "罗泽轩" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "苏钰" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- 版本发布 +- 插件配置 +- 自定义插件 +- 灵活性 +description: Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 +tags: [Community] +--- + +> Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 + +<!--truncate--> + +从两年前发布第一个 2.0 版本开始,APISIX 已经发布了 15 个 minor 版本和许多个 patch 版本。作为 2.x 系列最后的一个 minor 版本,2.15 版本可以说是个承上启下的版本。 + +「承上」是因为该版本继续引入了更多的功能,使得插件配置更加灵活;「启下」则是因为该版本将会是 2.x 版本的最后一个 LTS 版本,后续 APISIX 就要向 3.0 版本进发了。更多细节一起来看下文吧! + + + +## 自定义插件优先级 + +新版本支持用户自定义插件的优先级,而非直接应用插件默认的优先级属性。 +有了这个功能,我们可以在某个特定的路由上调整某几个插件的执行顺序,从而打破之前插件优先级属性的束缚。 + +例如,在默认情况下,`serverless-post-function` 插件是在 `serverless-pre-function` 插件之后执行的。但是通过此功能,可以让 `serverless-post-function` 插件优先执行。配置示例如下: + +```json + { + "serverless-post-function": { + "_meta": { + "priority": 10000 + }, + "phase": "rewrite", + "functions" : ["return function(conf, ctx) + ngx.say(\"serverless-post-function\"); + end"] + }, + "serverless-pre-function": { + "_meta": { + "priority": -2000 + }, + "phase": "rewrite", + "functions": ["return function(conf, ctx) + ngx.say(\"serverless-pre-function\"); + end"] + } +} +``` + +如果一个插件配置中没有注明优先级,则会根据插件代码中的优先级属性值进行排序。 + +如果你在 Service 或者 Plugin Config 的插件配置中指定了插件的优先级,那么在合并到路由后依然生效。 + +### 自定义插件是否执行 + +除了能够调整执行顺序外,还可以动态决定插件是否需要执行。2.15 版本中引入了插件配置级别的过滤器,由过滤器的执行结果控制插件执行与否。 + +下方配置中,只有变量 `$status` 大于或等于 400 时,才会执行 `http-logger` 插件。这么一来,只有 4xx 和 5xx 的请求才会被报告到远端的 HTTP 日志服务器上。 + +```json +{ + "http-logger": { + "_meta": { + "filter": { + {"status", "!", "<", "400"} + } + }, + ... + } +} +``` + +同时,借助 APISIX 的另一个功能[自定义变量](https://apisix.apache.org/zh/docs/apisix/next/plugin-develop/#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E9%87%8F),则可以玩出更多花样。比如客户端地址为内网地址,则跳过某个 Logger 之类的场景。 + +### 自定义错误响应 + +该功能也是在具体插件层面配置的新功能,属于插件配置级别上的错误信息。 +如果需求方对特定路由上的错误响应有所要求,那么这一功能就能派上用场了。无论是什么插件,通过该配置都能设置一个固定的响应结果,避免因为插件内置的错误响应信息而带来困扰。 + +如下述配置所示,不管 `jwt-auth` 插件返回了什么错误信息,都会被改写成 "Missing credential in request" 返回给客户端。 + +```json +{ + "jwt-auth": { + "_meta": { + "error_response": { + "message": "Missing credential in request" + } + } + } +} +``` + +## 允许采集 Stream Route 上的指标 + +本版本中还进行了一个较大的改动,就是允许在 Stream Route 上采集 metrics 的指标,并通过 Prometheus 的接口暴露出来。 + +该功能默认为关闭状态,如果需要启用,请在 [APISIX-Base](https://apisix.apache.org/zh/docs/apisix/FAQ/#%E5%A6%82%E4%BD%95%E6%9E%84%E5%BB%BA-apisix-base-%E7%8E%AF%E5%A2%83) 版本上构建 APISIX,并在 `config.yaml` 中启用 `prometheus` 插件,示例如下: + +```yaml Review Comment: ```suggestion ```yaml title="./conf/config.yaml" ``` ########## blog/zh/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,162 @@ +--- +title: "Apache APISIX 2.15 正式发布" +authors: + - name: "罗泽轩" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "苏钰" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- 版本发布 +- 插件配置 +- 自定义插件 +- 灵活性 +description: Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 +tags: [Community] +--- + +> Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 + +<!--truncate--> + +从两年前发布第一个 2.0 版本开始,APISIX 已经发布了 15 个 minor 版本和许多个 patch 版本。作为 2.x 系列最后的一个 minor 版本,2.15 版本可以说是个承上启下的版本。 + +「承上」是因为该版本继续引入了更多的功能,使得插件配置更加灵活;「启下」则是因为该版本将会是 2.x 版本的最后一个 LTS 版本,后续 APISIX 就要向 3.0 版本进发了。更多细节一起来看下文吧! + + + +## 自定义插件优先级 + +新版本支持用户自定义插件的优先级,而非直接应用插件默认的优先级属性。 +有了这个功能,我们可以在某个特定的路由上调整某几个插件的执行顺序,从而打破之前插件优先级属性的束缚。 + +例如,在默认情况下,`serverless-post-function` 插件是在 `serverless-pre-function` 插件之后执行的。但是通过此功能,可以让 `serverless-post-function` 插件优先执行。配置示例如下: + +```json + { + "serverless-post-function": { + "_meta": { + "priority": 10000 + }, + "phase": "rewrite", + "functions" : ["return function(conf, ctx) + ngx.say(\"serverless-post-function\"); + end"] + }, + "serverless-pre-function": { + "_meta": { + "priority": -2000 + }, + "phase": "rewrite", + "functions": ["return function(conf, ctx) + ngx.say(\"serverless-pre-function\"); + end"] + } +} +``` + +如果一个插件配置中没有注明优先级,则会根据插件代码中的优先级属性值进行排序。 + +如果你在 Service 或者 Plugin Config 的插件配置中指定了插件的优先级,那么在合并到路由后依然生效。 + +### 自定义插件是否执行 + +除了能够调整执行顺序外,还可以动态决定插件是否需要执行。2.15 版本中引入了插件配置级别的过滤器,由过滤器的执行结果控制插件执行与否。 + +下方配置中,只有变量 `$status` 大于或等于 400 时,才会执行 `http-logger` 插件。这么一来,只有 4xx 和 5xx 的请求才会被报告到远端的 HTTP 日志服务器上。 + +```json +{ + "http-logger": { + "_meta": { + "filter": { + {"status", "!", "<", "400"} + } + }, + ... + } +} +``` + +同时,借助 APISIX 的另一个功能[自定义变量](https://apisix.apache.org/zh/docs/apisix/next/plugin-develop/#%E6%B3%A8%E5%86%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E9%87%8F),则可以玩出更多花样。比如客户端地址为内网地址,则跳过某个 Logger 之类的场景。 + +### 自定义错误响应 + +该功能也是在具体插件层面配置的新功能,属于插件配置级别上的错误信息。 +如果需求方对特定路由上的错误响应有所要求,那么这一功能就能派上用场了。无论是什么插件,通过该配置都能设置一个固定的响应结果,避免因为插件内置的错误响应信息而带来困扰。 + +如下述配置所示,不管 `jwt-auth` 插件返回了什么错误信息,都会被改写成 "Missing credential in request" 返回给客户端。 + +```json +{ + "jwt-auth": { + "_meta": { + "error_response": { + "message": "Missing credential in request" + } + } + } +} +``` + +## 允许采集 Stream Route 上的指标 + +本版本中还进行了一个较大的改动,就是允许在 Stream Route 上采集 metrics 的指标,并通过 Prometheus 的接口暴露出来。 + +该功能默认为关闭状态,如果需要启用,请在 [APISIX-Base](https://apisix.apache.org/zh/docs/apisix/FAQ/#%E5%A6%82%E4%BD%95%E6%9E%84%E5%BB%BA-apisix-base-%E7%8E%AF%E5%A2%83) 版本上构建 APISIX,并在 `config.yaml` 中启用 `prometheus` 插件,示例如下: + +```yaml +stream_plugins: + - ... + - prometheus +``` + +在启用该插件后,即使只用 APISIX 来代理四层上的 TCP 流量,也会专门监听 9091 的端口,响应 Prometheus 发来的 HTTP 请求。 + +跟 HTTP 代理子系统部分的 `prometheus` 插件一样,下一步则是在需要采集指标的 Stream Route 上配置该插件: + +```shell +curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "plugins": { + "prometheus":{} + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +在对该 Stream Route 发起连接之后,访问 http://127.0.0.1:9091/apisix/prometheus/metrics 就会看到如下 TCP 代理统计数据: + +``` Review Comment: ```suggestion ```shell ``` ########## blog/zh/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,162 @@ +--- +title: "Apache APISIX 2.15 正式发布" +authors: + - name: "罗泽轩" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "苏钰" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- 版本发布 +- 插件配置 +- 自定义插件 +- 灵活性 +description: Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 +tags: [Community] +--- + +> Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 + +<!--truncate--> + +从两年前发布第一个 2.0 版本开始,APISIX 已经发布了 15 个 minor 版本和许多个 patch 版本。作为 2.x 系列最后的一个 minor 版本,2.15 版本可以说是个承上启下的版本。 + +「承上」是因为该版本继续引入了更多的功能,使得插件配置更加灵活;「启下」则是因为该版本将会是 2.x 版本的最后一个 LTS 版本,后续 APISIX 就要向 3.0 版本进发了。更多细节一起来看下文吧! + + + +## 自定义插件优先级 + +新版本支持用户自定义插件的优先级,而非直接应用插件默认的优先级属性。 +有了这个功能,我们可以在某个特定的路由上调整某几个插件的执行顺序,从而打破之前插件优先级属性的束缚。 Review Comment: ```suggestion 有了这个功能,我们可以在某个特定的路由上调整某几个插件的执行顺序,从而打破之前插件优先级属性的束缚。 ``` ########## blog/zh/blog/2022/07/29/release-apache-apisix-2.15.md: ########## @@ -0,0 +1,162 @@ +--- +title: "Apache APISIX 2.15 正式发布" +authors: + - name: "罗泽轩" + title: "Author" + url: "https://github.com/spacewander" + image_url: "https://github.com/spacewander.png" + - name: "苏钰" + title: "Technical Writer" + url: "https://github.com/SylviaBABY" + image_url: "https://avatars.githubusercontent.com/u/39793568?v=4" +keywords: +- Apache APISIX +- 版本发布 +- 插件配置 +- 自定义插件 +- 灵活性 +description: Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 +tags: [Community] +--- + +> Apache APISIX 2.15 版本正式发布!此版本带来插件层面的一些新增功能,在使用插件时提供更高的灵活性。 + +<!--truncate--> + +从两年前发布第一个 2.0 版本开始,APISIX 已经发布了 15 个 minor 版本和许多个 patch 版本。作为 2.x 系列最后的一个 minor 版本,2.15 版本可以说是个承上启下的版本。 + +「承上」是因为该版本继续引入了更多的功能,使得插件配置更加灵活;「启下」则是因为该版本将会是 2.x 版本的最后一个 LTS 版本,后续 APISIX 就要向 3.0 版本进发了。更多细节一起来看下文吧! + + + +## 自定义插件优先级 + +新版本支持用户自定义插件的优先级,而非直接应用插件默认的优先级属性。 +有了这个功能,我们可以在某个特定的路由上调整某几个插件的执行顺序,从而打破之前插件优先级属性的束缚。 + +例如,在默认情况下,`serverless-post-function` 插件是在 `serverless-pre-function` 插件之后执行的。但是通过此功能,可以让 `serverless-post-function` 插件优先执行。配置示例如下: + +```json + { + "serverless-post-function": { + "_meta": { + "priority": 10000 + }, + "phase": "rewrite", + "functions" : ["return function(conf, ctx) + ngx.say(\"serverless-post-function\"); + end"] + }, + "serverless-pre-function": { + "_meta": { + "priority": -2000 + }, + "phase": "rewrite", + "functions": ["return function(conf, ctx) + ngx.say(\"serverless-pre-function\"); + end"] + } +} +``` + +如果一个插件配置中没有注明优先级,则会根据插件代码中的优先级属性值进行排序。 + +如果你在 Service 或者 Plugin Config 的插件配置中指定了插件的优先级,那么在合并到路由后依然生效。 Review Comment: ```suggestion :::note 注意 如果没有在插件配置中注明插件的优先级,则会根据插件代码中的优先级属性值进行排序。 如果你在 Service 或者 Plugin Config 的插件配置中指定了插件的优先级,那么在合并到路由后依然生效。 ::: ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
