我有一个通过 Azure 应用服务托管的 Java 应用程序,它使用 Azure 应用程序配置来检索连接字符串和其他详细信息。
最近,我不得不禁用对 Azure 应用程序配置的公共访问并为其创建一个私有端点。
现在,我的应用程序无法从 Azure 应用程序配置检索数据。
我确保应用程序服务和Azure应用程序配置位于同一虚拟网络下。我将 VNET 范围添加到应用服务网络规则中。更新了 NSG 的入站规则以允许 VNET 范围。
在本地运行应用程序会出现以下错误 -
com.azure.core.exception.HttpResponseException: Status code 403, (empty body)
。我假设此错误表明它无法解析应用程序配置端点。
做了这一切对我来说仍然不起作用。我对网络方面很陌生,任何帮助将不胜感激。如何确保应用程序服务能够连接到应用程序配置?
听起来像是 DNS 问题或身份验证问题。
开始查看 VNet 内服务的连接。然后,一旦确认,您仍然会收到 403,看看您如何在服务上设置 AuthN 和 AuthZ(IAM 刀片上的 RBAC)。
连接性: 确保您有一个名为
privatelink.azconfig.io
的私有 DNS 区域链接到您的 VNet,其中 Your-store-name
的记录指向也在您的资源组中创建的专用终结点的 NW 接口的 IP。
我会考虑在故障排除时完全禁用 NSG(尽管我很确定 NSG 的入站规则在这里根本不起作用 - 这是一个出站问题。您看过出站规则吗?)。
作为故障排除工具,我建议将虚拟机部署到 Vnet 并使用它尝试从网络内访问应用程序配置服务,例如通过执行
nslookup
,然后尝试访问应用程序配置的 https 端点(https://{store-name}.azconfig.io
)。部署 VM 后,您还可以使用 Azure 网络观察器中的连接故障排除。
https://learn.microsoft.com/en-us/azure/azure-app-configuration/concept-private-endpoint