首页 > 解决方案 > Azure WebJob vNet 集成

问题描述

我无法在 Azure 应用服务/WebJob 与其连接的存储帐户之间进行 vNet 集成以正常工作。我已将应用服务和存储帐户添加到同一个 vNet 并为 Microsoft.Storage 启用服务终结点绑定。从我在文档中看到的内容来看,这是使服务之间的通信正常工作所需要的。不幸的是,当我尝试运行它时,我在 WebJob 日志中收到此错误:

“未处理的异常:Microsoft.WindowsAzure.Storage.StorageException:远程服务器返回错误:(403)禁止。---> System.Net.WebException:远程服务器返回错误:(403)禁止。”

如果我禁用存储帐户上的防火墙,一切正常。

所有服务都放置在同一资源组和区域(西欧)中。

我已经在应用服务上尝试了“正常”(带网关)和新的(预览版)vNet 集成版本,但都以同样的方式失败。

我没有使用 ASE(应用服务环境)。

我还在存储防火墙上​​添加了以下例外:

存储防火墙例外

标签: azureazure-webjobs

解决方案


首先,当您允许一组受信任的 Microsoft 服务绕过网络规则时。然后,这些服务将使用强身份验证来访问存储帐户。在这种情况下,您可能认为Microsoft.Networking服务将在防火墙规则中被允许。但基本上,VNet 集成并不意味着应用服务位于 VNet 中。VNet 集成使您的 Web 应用程序可以访问虚拟网络中的资源,但不会授予您从虚拟网络对 Web 应用程序的专用访问权限。我们通常用于安全地访问 VNet 中的资源。

如果要将应用服务放在 VNet 中,则需要将其部署在App Service Environment中,然后它已经在 VNet 中。

或者,您可以在存储帐户的防火墙规则中将出站 Web 应用服务 IP 地址列入白名单。

希望这会有所帮助,如果您有任何疑虑,请随时告诉我。


推荐阅读