在最近的一篇博客文章中,微软公布了公开预览版的Azure Functions Proxies。该功能可为使用Azure Function Apps,希望为其提供一个通用的公开端点,而无须考虑各种Function Apps的具体供应位置或方式的组织提供反向代理功能。
微软项目经理Mathew Henderson介绍了Azure Functions Proxies试图解决的一些难题:
自从Azure Functions发布后,我们发现大量客户使用该服务构建了不同的API。Functions是一种快速定义所需操作的好方法,对很多类型的应用来说,该服务的订阅计划提供了非常适合的计费模式。然而我们也听说多个Functions的管理工作比较麻烦,用户通常会难以通过一个Function应用管理大型的解决方案。此外还有一些用户希望使用微服务架构,但希望对不同组建进行部署隔离。虽然大部分情况下可以将一个解决方案拆分为多个Function应用,但对 API 来说这样做会较为复杂。
Azure Functions Proxies顺利解决了有大量API或微服务需要管理的开发者面临的难题。过去,由于每个Azure Function App使用了自己的主机名,而Azure Functions可能托管在多个区域,这使得API的使用方必须自行解决URL管理方面的繁琐难题。现在,开发者可以暴露一个反向代理端点,并对底层API进行抽象,使其可以包含其他Function App、API、Azure API App,或其他HTTP端点。
开发者可以用创建创建Function App的界面直接创建Azure Function Proxy。在配置过程中,开发者需要提供一个Route模板,借此设置允许使用哪些HTTP方法,并提供要将HTTP请求路由到的Backend URL。Backend URL并非必须为静态,用户可根据请求的具体内容或应用程序设置动态地设置该URL。
图片来源:https://blogs.msdn.microsoft.com/appserviceteam/2017/02/22/azure-functions-proxies-public-preview/
对于使用持续部署,例如BitBucket、Dropbox、GitHub,或Visual Studio Team Services配置Function App的开发者,也可以用相同方式部署自己的Azure Functions Proxies,但前提是Azure Functions Proxies已启用。有关Azure Function Proxy的所有信息都存储在一个名为proxies.json的文件中,该文件位于Function app目录的根目录下。
Azure Functions Proxies目前为预览服务,免费提供。标准计费方式将按照代理的执行收费,详情请参阅Azure Functions的定价页面。
本文转自d1net(转载)