目前,我们已为我们的解决方案设计和实施了以下基础架构。我们的 Angular 应用程序部署在前端应用服务中,而我们的 .NET 应用程序部署在后端应用服务中。
我们有一个公共 URL(例如,https://publicurl.example.com) 指向我们的前端应用服务。每当我尝试调用后端 API(例如,https://backend.ase-01.appserviceenvironment.net/v1/api/orders),我收到 ERR_CONNECTION_TIMED_OUT 错误。
经过我们的基础设施团队进一步调查,他们发现这是因为 Angular(作为客户端应用程序)直接调用了我们的后端应用程序。由于后端位于 VNET 内,Angular 应用程序无法解析 FQDN,从而导致超时错误。
我们发现的一个解决方案是在 App GW 中创建一条规则,将所有 /v1/* 请求路由到后端应用程序。这种方法可行,但它会将应用程序部分暴露给公共互联网,这在某种程度上违背了将其置于 VNET 中的初衷。
有没有更好的解决办法?