3scale 策略开发 – 第 1 部分设置开发环境
Posted: Mon Mar 24, 2025 4:17 am
3scale 策略开发 – 第 1 部分设置开发环境
在这个由多部分组成的博客系列中,我们将深入研究自定义 3scale APIcast 策略的开发、测试和部署。在这个初始部分,我们将设置一个开发环境,以便我们可以真正开始制定我们的政策。
但在开始之前,我们先来看看什么是 3scale APIcast 策略。我们不会在这里讨论太多细节,因为关于 3scale APIcast 策略已经存在更好、更详细的描述。
对于那些不熟悉的人来说,3scale是 Red Hat 提供的完整 API 管理解决方案。有 Coinbase 数据 一个 API 管理器用于帐户管理、分析和整体配置。供外部开发人员访问 API 和查看文档的开发人员门户。以及名为APIcast的API网关。 APIcast 网关基于Nginx,更具体地说是基于Openresty,它是使用各种模块编译的 Nginx 发行版,最著名的是lua-nginx-module。
lua-nginx-module 通过使用Lua 编程语言执行脚本,提供了增强 Nginx 服务器的能力。这是通过为每个 Nginx 阶段提供一个 Lua 钩子来实现的。 Nginx 使用事件循环和状态模型工作,其中每个请求(以及服务器及其工作进程的启动)都会经历各个阶段。每个阶段可以执行一个特定的Lua函数。
lua-nginx-module 的 README 中提供了各个阶段和相应 Lua 钩子的概述
由于 APIcast 网关使用 Openresty 3scale,因此通过所谓的策略提供了一种在 Nginx 服务器中利用这些 Lua 钩子的方法。如 APIcast README 中所述:
“APIcast 的行为可通过策略定制。策略基本上会告诉 APIcast 在每个 nginx 阶段应该做什么。”
可以在同一个 README 中找到有关策略的详细解释:
设置开发环境
从介绍中可以清楚看出,APIcast 策略是在 Lua 编程语言中创建的。所以我们需要设置一个环境来进行一些 Lua 编程。此外,实际的 APIcast 服务器非常适合执行一些本地测试。
幸运的是,3scale 的员工使用 Docker 和 Docker Compose 为 APIcast 设置开发环境变得非常容易。
在这个由多部分组成的博客系列中,我们将深入研究自定义 3scale APIcast 策略的开发、测试和部署。在这个初始部分,我们将设置一个开发环境,以便我们可以真正开始制定我们的政策。
但在开始之前,我们先来看看什么是 3scale APIcast 策略。我们不会在这里讨论太多细节,因为关于 3scale APIcast 策略已经存在更好、更详细的描述。
对于那些不熟悉的人来说,3scale是 Red Hat 提供的完整 API 管理解决方案。有 Coinbase 数据 一个 API 管理器用于帐户管理、分析和整体配置。供外部开发人员访问 API 和查看文档的开发人员门户。以及名为APIcast的API网关。 APIcast 网关基于Nginx,更具体地说是基于Openresty,它是使用各种模块编译的 Nginx 发行版,最著名的是lua-nginx-module。
lua-nginx-module 通过使用Lua 编程语言执行脚本,提供了增强 Nginx 服务器的能力。这是通过为每个 Nginx 阶段提供一个 Lua 钩子来实现的。 Nginx 使用事件循环和状态模型工作,其中每个请求(以及服务器及其工作进程的启动)都会经历各个阶段。每个阶段可以执行一个特定的Lua函数。
lua-nginx-module 的 README 中提供了各个阶段和相应 Lua 钩子的概述
由于 APIcast 网关使用 Openresty 3scale,因此通过所谓的策略提供了一种在 Nginx 服务器中利用这些 Lua 钩子的方法。如 APIcast README 中所述:
“APIcast 的行为可通过策略定制。策略基本上会告诉 APIcast 在每个 nginx 阶段应该做什么。”
可以在同一个 README 中找到有关策略的详细解释:
设置开发环境
从介绍中可以清楚看出,APIcast 策略是在 Lua 编程语言中创建的。所以我们需要设置一个环境来进行一些 Lua 编程。此外,实际的 APIcast 服务器非常适合执行一些本地测试。
幸运的是,3scale 的员工使用 Docker 和 Docker Compose 为 APIcast 设置开发环境变得非常容易。