我无法在Azure App Service / WebJob与其连接的存储帐户之间进行vNet集成以正常工作。我已将App Service和存储帐户添加到同一个vNet,并为Microsoft.Storage启用了服务端点绑定。从我在文档中看到的内容来看,这是使服务之间的通信工作所需要的。不幸的是,当我尝试运行它时,我在WebJob日志中收到此错误:
“未处理的异常:Microsoft.WindowsAzure.Storage.StorageException:远程服务器返回错误:(403)Forbidden .---> System.Net.WebException:远程服务器返回错误:(403)Forbidden。”
如果我在存储帐户上禁用防火墙,一切正常。
所有服务都放在同一资源组和区域(西欧)。
我在App Service上尝试了“普通”(带网关)和新的(预览)vNet集成版本,两者都以同样的方式失败。
我没有使用ASE(App Service Environment)。
我还在存储防火墙上添加了以下例外:
首先,当你允许trusted Microsoft services集绕过网络规则时。然后,这些服务将使用强身份验证来访问存储帐户。在这种情况下,您可能会认为防火墙规则中允许使用Microsoft.Networking服务。但基本上,VNet Integration并不意味着App Service在VNet中。 VNet Integration使您的Web应用程序可以访问虚拟网络中的资源,但不会从虚拟网络授予对Web应用程序的私有访问权限。我们通常用于安全地访问VNet中的资源。
如果您想将App Service放在VNet中,则需要在App Service Environment中部署它,然后它已经在VNet中。
或者,您可以在存储帐户的防火墙规则中将outbound web app service IP address列入白名单。
希望这有帮助,如果您有任何疑虑,请随时告诉我。