azure - Azure 应用服务通过专用链接进行应用服务通信
问题描述
我有一个带有两个应用服务的 Azure 应用。应用服务 A 调用应用服务 B 上的 API。
我想使用 Private Link 来确保它们之间的流量是私有的,而不是通过公共 IP。所以这就是我所做的:
创建了一个新的 VNet
配置了从两个应用服务到新 VNet 的专用终结点,具有专用 DNS 集成
确保已创建私有 DNS,链接到新的 VNet,并且这两个服务都已在其中注册。
确保这两项服务都不能公开访问(我得到 403)
用于测试:在 VNet 中创建了一个新 VM,并确保我可以从 VM 浏览到服务。工作正常。我使用它们的原始 URL 浏览了这些服务:serviceX.azurewebsites.net。
但是 - 当我尝试从服务 A 调用服务 B(使用相同的 URL - serviceb.azurewebsites.net)时,我得到 403(禁止)。
我错过了什么?
如何使通过专用链接连接到同一 VNet 的两个应用服务相互连接?
解决方案
在这种情况下,您可能需要将您的应用程序与 Azure 虚拟网络集成,并且集成子网需要同一 VNet 中未使用的子网。
Private Endpoint 仅用于您的 Web 应用程序的传入流。传出流不会使用此专用终结点,但您可以通过 VNet 集成功能将传出流注入不同子网中的网络。
另外,请注意
如果您将所有出站流量路由到您的 VNet,则它受应用于您的集成子网的 NSG 和 UDR 的约束。将所有出站流量路由到 VNet 时,出站地址仍然是应用程序属性中列出的出站地址,除非您提供将流量发送到其他位置的路由。
此外,如果您WEBSITE_VNET_ROUTE_ALL
在应用设置中设置为1
,则所有出站呼叫都会受到影响,并且如果您希望您的应用使用 Azure DNS 专用区域,则应设置WEBSITE_DNS_SERVER
为 value 168.63.129.16
。
推荐阅读
- spring-boot - 如何在 Spring Boot 的 Controller 类中使用 if-else 重定向到另一个视图?例如 :
- unity3d - 从 Unity 2018.3 升级到 2019.3 - Vuforia 问题
- java - Bootstrap进度条在android中没有增加
- arrays - React Hooks 表单处理:使用多个字符串项和一个数组项更新对象的状态
- microsoft-teams - 将 Web 应用程序与 MS Teams 集成
- r - 创建十进制最大值为 59 的整数序列的优雅方法
- sql-server - SQL 查询检查表并在表中存在两个值时返回是或否
- android - 如何使用根据相对约束调整其大小的卡片创建 ListView?
- django - bootstrap : for 循环中的卡片
- oracle - 从 Java 等调用时,DBMS_OUTPUT 将消息存储在存储过程中的位置?