同一应用程序服务计划中的应用程序之间的通信



为了澄清我没有问的问题,有很多关于使用端点将应用程序服务计划中的应用程序公开给vnet的文档,这对于托管vnet的VM或应用程序服务规划之外的其他资源之间的私有通信非常有用。

我要问的是同一应用程序服务计划内两个应用程序之间的通信。因此,如果我们有PlanA,并且AppB和AppC都部署到该计划中,那么如果PlanA扩展到两个实例,每个实例中都会有AppB和AppC。非常类似于托管多个应用程序的IIS场。

如果我想禁用AppC的公共访问,但仍然允许AppB调用AppC(想象一下,如果AppC是API服务,AppB是前端web应用程序(,这可能吗?如果AppC没有公共IP,您将如何解决该调用?域appC.azurewebsites.net会解析为AppB可以访问的私有IP吗?

两个应用服务在一个应用服务计划中运行,这意味着这些应用服务只能共享同一组计算资源(CPU、内存等(,并且在应用服务计划内不提供任何网络隔离或专用IP地址。

如果你想保留现有的设置并限制对AppC的访问,你可以将AppB的IP地址列入白名单,如下所示:

  1. 转到Azure门户中的AppB,单击属性并复制出站IP地址列表
  2. 转到AppC,单击网络->访问限制并拒绝访问除在步骤1中复制的出站IP地址之外的所有内容

appC.azurewebsites.net仍将具有公共IP地址,但Azure将只允许从您配置的IP地址访问它,并向任何其他客户端返回403错误。

然而,如果你想拥有一个真正的私有端点和对路由配置的更精细的控制,那么可以考虑将你的应用程序服务与Azure虚拟网络集成,如这里所述。虚拟网络不仅限于虚拟机,它们也可以用于应用程序服务。

最新更新