Apache APISIX 为 Microsoft Azure Functions 提供了对 serverless 框架的支持。Apache APISIX 建议定义一个启用了无服务器插件的路由,而不是在应用程序中采用硬编码函数 URL。它使开发者能够灵活地热更新函数 URI。此外,因为 Apache APISIX 有非常强大的认证支持,这种方法还可以减轻应用逻辑中的授权和认证问题,可以用来识别和授权客户消费者访问带有 FAAS 的特定路由。本文介绍了 Apache APISIX 最近新增的插件 azure-functions
,并详细说明了如何将 Azure Functions(一种广泛使用的 serverless 解决方案)集成到 Apache APISIX 中。
azure-functions 插件工作原理
azure-functions
插件让用户为网关 URI 定义一个上游的 azure HTTP Trigger
serverless 功能。如果启用,该插件将终止正在进行的对该 URI 的请求,并代表客户向 azure FAAS(新的上游)发起一个新的请求,其中包括用户设置的合适的授权细节、请求头、请求体、参数(这三个部分都是从原始请求中传递的),并将响应体、状态码和头返回给向 Apache APISIX 代理发出请求的原始客户。
该插件支持通过 API 密钥和 azure active directory 对 azure FAAS 服务进行授权。
如何在 Apache APISIX 中使用 azure-functions 插件
该插件的主要目标是将路由配置中指定的网关路由代理到 azure function URI 上。本节为您介绍如何在 azure 云上配置和创建 serverless HTTP Trigger。
-
首先进入 Azure 并设置一个试用计划,最多可免费调用 100 万次。要了解更多关于定价的情况,请访问这里。
-
访问Azure Portal。
- 首先,创建一个资源组,为 FAAS 创建逻辑分区。
- 用你选择的 URL 创建一个 function 应用。
- 首先,创建一个资源组,为 FAAS 创建逻辑分区。
-
在 VSCode 编辑器中安装 Azure Functions 插件。安装后,通过插件认证,并安装 azure function core tool,用于本地开发。
npm install -g azure-functions-core-tools@3 --unsafe-perm true
-
将下面的代码段部署到我们刚才通过 VSCode 中的 Azure Functions 扩展面板创建的同一个function 应用中。
module.exports &#