azure - Azure WebJob vNet 集成
问题描述
我无法在 Azure 应用服务/WebJob 与其连接的存储帐户之间进行 vNet 集成以正常工作。我已将应用服务和存储帐户添加到同一个 vNet 并为 Microsoft.Storage 启用服务终结点绑定。从我在文档中看到的内容来看,这是使服务之间的通信正常工作所需要的。不幸的是,当我尝试运行它时,我在 WebJob 日志中收到此错误:
“未处理的异常:Microsoft.WindowsAzure.Storage.StorageException:远程服务器返回错误:(403)禁止。---> System.Net.WebException:远程服务器返回错误:(403)禁止。”
如果我禁用存储帐户上的防火墙,一切正常。
所有服务都放置在同一资源组和区域(西欧)中。
我已经在应用服务上尝试了“正常”(带网关)和新的(预览版)vNet 集成版本,但都以同样的方式失败。
我没有使用 ASE(应用服务环境)。
我还在存储防火墙上添加了以下例外:
解决方案
首先,当您允许一组受信任的 Microsoft 服务绕过网络规则时。然后,这些服务将使用强身份验证来访问存储帐户。在这种情况下,您可能认为Microsoft.Networking服务将在防火墙规则中被允许。但基本上,VNet 集成并不意味着应用服务位于 VNet 中。VNet 集成使您的 Web 应用程序可以访问虚拟网络中的资源,但不会授予您从虚拟网络对 Web 应用程序的专用访问权限。我们通常用于安全地访问 VNet 中的资源。
如果要将应用服务放在 VNet 中,则需要将其部署在App Service Environment中,然后它已经在 VNet 中。
或者,您可以在存储帐户的防火墙规则中将出站 Web 应用服务 IP 地址列入白名单。
希望这会有所帮助,如果您有任何疑虑,请随时告诉我。
推荐阅读
- css - 使背景颜色的底部边缘另一种颜色
- android - java.lang.RuntimeException:android.text.TextUtils 中的方法 isEmpty 未模拟
- machine-learning - 在 pytorch 中进行第一次 epoch 训练后系统挂起
- angularjs - Angular-Auth0 和 Requirejs
- python - 使用 Selenium 和 python 为 Instagram 提供上传文件路径
- ios - iPhone 模拟器中的图像不会占用与真实设备上相同的空间
- regex - 正则表达式与 shell 脚本不匹配:sed 's| *移动 *\([^ ]*\) .*|\1|
- javascript - 如何覆盖函数 convertTicksToLabels chartjs
- c# - C# Word 互操作:SymbolMRU 用法
- php - Unity 到 PHP 到 XML / 升级问题