首页 > 解决方案 > Azure 应用服务通过专用链接进行应用服务通信

问题描述

我有一个带有两个应用服务的 Azure 应用。应用服务 A 调用应用服务 B 上的 API。

我想使用 Private Link 来确保它们之间的流量是私有的,而不是通过公共 IP。所以这就是我所做的:

  1. 创建了一个新的 VNet

  2. 配置了从两个应用服务到新 VNet 的专用终结点,具有专用 DNS 集成

  3. 确保已创建私有 DNS,链接到新的 VNet,并且这两个服务都已在其中注册。

  4. 确保这两项服务都不能公开访问(我得到 403)

  5. 用于测试:在 VNet 中创建了一个新 VM,并确保我可以从 VM 浏览到服务。工作正常。我使用它们的原始 URL 浏览了这些服务:serviceX.azurewebsites.net。

但是 - 当我尝试从服务 A 调用服务 B(使用相同的 URL - serviceb.azurewebsites.net)时,我得到 403(禁止)。

我错过了什么?

如何使通过专用链接连接到同一 VNet 的两个应用服务相互连接?

标签: azureazure-web-app-serviceazure-virtual-network

解决方案


在这种情况下,您可能需要将您的应用程序与 Azure 虚拟网络集成,并且集成子网需要同一 VNet 中未使用的子网。

使用 Azure Web App 的专用终结点

Private Endpoint 仅用于您的 Web 应用程序的传入流。传出流不会使用此专用终结点,但您可以通过 VNet 集成功能将传出流注入不同子网中的网络。

另外,请注意

如果您将所有出站流量路由到您的 VNet,则它受应用于您的集成子网的 NSG 和 UDR 的约束。将所有出站流量路由到 VNet 时,出站地址仍然是应用程序属性中列出的出站地址,除非您提供将流量发送到其他位置的路由。

此外,如果您WEBSITE_VNET_ROUTE_ALL在应用设置中设置为1,则所有出站呼叫都会受到影响,并且如果您希望您的应用使用 Azure DNS 专用区域,则应设置WEBSITE_DNS_SERVER为 value 168.63.129.16


推荐阅读