服务端点不适用于应用程序网关后面的 Azure Functions 代理

Service Endpoint not working for Azure Functions Proxies, behind an Application Gateway

我正在使用应用程序网关 (WAF) 将所有流量路由到代理功能应用程序 (Premium EP1)。函数应用程序依次采用如下 URL 并将它们定向到正确的 Web API。 (我意识到这是 App Gateway 中基于路径的路由的一个特性,但我们也进行 header 注入以提供正确的租户 ID)。

domain.com/api1 -> api1.azurewebsites.net
domain.com/api2 -> api2.azurewebsites.net
domain.com/api3 -> api3.azurewebsites.net

这里稍微简化了一点,但它说明了重点。

所有 4 个应用程序 Services/Function 都是 VNet 集成到它们自己的子网中,每个子网都有 serverFarms 委托,服务端点到 Microsoft.Web。所有 4 个应用服务还应用了访问限制,以仅允许来自子网的流量。

但出于某种原因,由于访问限制,来自代理功能应用程序的流量无法通过网络 API。当我将 Function App 的外部 IP 地址列入 App Services 的白名单时,允许流量通过。这对我来说似乎是错误的,因为我认为他们会使用通过子网列入白名单的私有服务端点?

有谁知道这是否是预期的行为?

现在,使用应用程序网关 V2 SKU,您可以进行 header 重写。因此,为了简化您的配置,您可以从您的环境中删除 Azure Functions 并在 Web 应用程序中删除 white-list 应用程序网关 IP。

您可以在应用程序网关 here 中检查 HTTP 重写。

使用时的Premium EP1 Instance为Preview实例,VNet Integration功能也在Preview中。该实例未列入允许使用 VNet 集成的白名单。

Microsoft 非常友好地将其列入白名单,以便我们进行测试。