You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2021/09/07 02:19:28 UTC

[GitHub] [apisix-website] yzeng25 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

yzeng25 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703123736



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`

Review comment:
       "......让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,"
   --->
   "让我们在开发的过程中可以更专注应用逻辑的开发。Python 作为一个有30年历史的老牌开发语言,它的生态以及各种模块已经非常完善。"

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。

Review comment:
       "`Python`其他的优点就不在一一赘述,"
   --->
   "`Python`的其他优点就不再一一赘述。"

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`

Review comment:
       `APISIX` ---> `Apache APISIX`

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。
+
+`Plugin Runner` 会处理 `RPC` 调用,在其内部创建一个模拟请求,然后运行多语言编写的插件,并将结果返回给 Apache APISIX。
+
+多语言插件的执行顺序是在 `ext-plugin-*` 插件配置项中定义的,像其他插件一样,它们可以被启用并在运行中重新定义。
+
+## 部署测试
+
+### 基础运行环境
+
+- Apache APISIX 2.7
+- Python 3.6+
+
+`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。

Review comment:
       "`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。"
   --->
   "`Apache APISIX` 的安装部署不再过多赘述,详情请参考 [Apache APISIX 官方文档:如何构建 Apache APISIX](https://github.com/apache/apisix/blob/master/docs/zh/latest/how-to-build.md) 进行部署。"

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`

Review comment:
       "`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`" ---> "鉴权、认证、缓存、版本、熔断、审计"

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。

Review comment:
       I don't get it... could you explain more in this sentence?

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`

Review comment:
       API网关 ---> API 网关

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+

Review comment:
       please delete empty line, thanks.

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后

Review comment:
       ditto

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`

Review comment:
       Is there a way to emphasize `Pythonista` in Chinese? When I google search this word, it returns a bunch of ambiguous results, https://www.google.com/search?q=Pythonista&oq=Pythonista&aqs=chrome..69i57.270j0j7&sourceid=chrome&ie=UTF-8 . 

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。
+
+`Plugin Runner` 会处理 `RPC` 调用,在其内部创建一个模拟请求,然后运行多语言编写的插件,并将结果返回给 Apache APISIX。
+
+多语言插件的执行顺序是在 `ext-plugin-*` 插件配置项中定义的,像其他插件一样,它们可以被启用并在运行中重新定义。
+
+## 部署测试
+
+### 基础运行环境
+
+- Apache APISIX 2.7
+- Python 3.6+
+
+`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。
+
+### 下载安装 Python Runner
+
+```bash
+$ git clone https://github.com/apache/apisix-python-plugin-runner.git
+$ cd apisix-python-plugin-runner
+$ make install
+```
+
+### 配置 Python Runner
+
+#### 开发模式
+
+##### 运行Python Runner
+
+```bash
+$ cd /path/to/apisix-python-plugin-runner
+$ APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock python3 apisix/main.py start
+```
+
+##### 修改APISIX配置文件
+
+```bash
+$ vim /path/to/apisix/conf/config.yaml
+apisix:
+  admin_key:
+    - name: "admin"
+      key: edd1c9f034335f136f87ad84b625c8f1
+      role: admin
+ext-plugin:
+  path_for_test: /tmp/runner.sock
+```
+
+#### 生产模式
+
+##### 修改APISIX配置文件
+
+```bash
+$ vim /path/to/apisix/conf/config.yaml
+apisix:
+  admin_key:
+    - name: "admin"
+      key: edd1c9f034335f136f87ad84b625c8f1
+      role: admin
+ext-plugin:
+  cmd: [ "python3", "/path/to/apisix-python-plugin-runner/apisix/main.py", "start" ]
+```
+
+#### Python Runner配置(可选)
+
+如果需要对 `Log Level` 或 `Unix Domain Socket` 环境变量调整可以修改 `Runner` 的配置文件
+
+```bash
+$ vim /path/to/apisix-python-plugin-runner/apisix/config.yaml
+socket:
+  file: $env.APISIX_LISTEN_ADDRESS # Environment variable or absolute path
+
+logging:
+  level: debug # error warn info debug
+```
+
+### 启动 Python Runner
+
+```bash
+$ cd /path/to/apisix
+# Start or Restart
+$ ./bin/apisix [ start | restart ]
+```
+
+启动或重启 `APISIX` 即可,此时 `APISIX` 和 `Python Runner` 已经完成配置并启动。
+
+### 测试 Python Runner
+
+#### 配置APISIX路由及插件信息

Review comment:
       配置APISIX路由及插件信息  ---> 配置 Apache APISIX 路由及插件信息

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。

Review comment:
       “`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。”
   --->
   “`Python` 的缺点也比较明显:`Python` 作为一门解释性语言,相较于 `C++` 和 `Golang` 这样的编译型语言,在性能上的差距还是比较大的。”

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前

Review comment:
       "`ext-plugin-pre-req` : " ---> "`ext-plugin-pre-req`:"




-- 
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: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org