问题描述
我们在Azure中拥有三个App Services(API1,API2,API3)。 API2正在从CosmosDB获取数据。 API3正在从其他CosmosDB获取数据。 主API1调用API2以获取一些数据。然后使用此数据调用API3。 我们的API1性能不佳,我们试图找出原因。我们注意到指标中的连接过多。另外,SNAT端口也有问题。
我们试图将这些API设置为相同的VNet,但这无济于事,我们不确定如何正确设置它。
您知道我们应该设置什么吗?
更新:
似乎VNet帮助我们解决了SNAT端口问题,但API的性能仍然很差。
真正帮助我们的是从Windows变为Linux。当所有API在Linux服务器上运行时,我们再也看不到任何连接。
解决方法
不确定您身边三个API的具体配置是什么。如果要使用来自Vnet的IP而不是外部IP,则可以使用单独的环境ASE。
或者,您可以使用指向应用程序服务的私有链接。通过使用专用端点,您可以专用连接到您的Web应用程序。阅读Connect privately to a web app by using Azure Private Endpoint (Preview)。
今天,您可以使用VNet service endpoints保护此连接的安全 将流量保持在Microsoft主干网中并允许 将PaaS资源锁定到您的VNet。然而 PaaS端点仍通过公共IP地址提供服务,因此 无法通过Azure ExpressRoute private从本地访问 对等或VPN网关。今天发布了Azure Private 链接,您只需在VNet中创建一个私有终结点并进行映射 到您的PaaS资源(您的Azure存储帐户Blob或SQL数据库 服务器)。然后可以通过私有IP地址访问这些资源 在您的VNet中,启用从本地到Azure的连接 ExpressRoute专用对等和/或VPN网关并保持网络 通过不向公共IP地址开放即可轻松进行配置。
有关更多信息,您可以阅读here。