Azure Functions 和 Azure Application Gateway 或 API Management

14
我有几个开发好的 Microsoft Azure 功能。我想使用带防火墙的网关,使我的 Azure 功能仅使用一个公共 IP 地址就可以访问和保护。
在 Azure 中是否有使用 Azure Functions 和 Azure Application Gateway 或 API Management 的方法?
在这种情况下最佳的方法是什么?

Azure Functions 是无服务器的,因此我不确定您想通过拥有网关来实现什么。因此,安全性与使用多个 OAuth 提供程序的选项集成在一起。 - Aravind
我想为几个功能拥有一个公共IP。 - Dmitry Kazakov
每个函数应用程序都将有一个唯一的URL。您不能拥有一个公共的网关IP。即使您拥有它,您也必须进行某种形式的重定向。也许您可以拥有一个API应用程序,并编写一些逻辑来将重定向到实际的函数应用程序。 - Aravind
@DmitryKazakov,您是指您只想使用一个公共IP来访问这些功能?还是希望它们都可以通过一个IP访问? - MBen
2个回答

7
Azure API管理允许您为所有客户提供单一访问点。
如果您已经创建了HTTP触发的Azure函数(或任何SOAP或REST服务),您可以使用API管理来为该函数提供中央访问点。这使您能够进行负载平衡/热插拔/速率限制/身份验证和授权/IP白名单等操作。
有关HTTP触发功能的更多信息,请参见此处:https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-serverless-api 有关如何为Azure函数创建Open API的信息,请参见此处:https://learn.microsoft.com/en-us/azure/azure-functions/functions-openapi-definition

2
这个关于参考架构的链接确认了使用API管理的建议 - https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/serverless/web-app。然而,链接https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-serverless-api中的内容似乎是误导性的。它使用Azure函数代理,而不是API管理。正确的API管理链接应该是https://learn.microsoft.com/en-us/azure/api-management/api-management-key-concepts。 - Tharanga Hewavithana

2
我认为可以通过使用API管理来实现这一目标。使用API管理,您可以添加一个单一的访问点。首先,您需要创建一个API管理实例。您还可以添加API产品,以便第三方使用者可以订阅您的API产品。请查看API管理实例中的开发人员门户和发布人员门户。只需查看一下,https://azure.microsoft.com/en-us/services/api-management/

欢迎提供解决方案的链接,但请确保您的答案即使没有链接也是有用的:在链接周围添加上下文,以便其他用户知道它是什么以及为什么存在,然后引用您链接的页面中最相关的部分,以防目标页面不可用。仅仅是一个链接的答案可能会被删除。 - Bugs
感谢 @Bugs 和 . 我更新了内容,这样其他人就可以不用链接也能理解了。 - dilantha111

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接