簡體   English   中英

Azure WebJob vNet 集成

[英]Azure WebJob vNet integration

我無法在 Azure 應用服務/Web 作業與其連接的存儲帳戶之間進行 vNet 集成以正常工作。 我已將應用服務和存儲帳戶添加到同一個 vNet 並為 Microsoft.Storage 啟用服務端點綁定。 從我在文檔中看到的,這是使服務之間的通信正常工作所需要的。 不幸的是,當我嘗試運行它時,我在 WebJob 日志中收到此錯誤:

“未處理的異常:Microsoft.WindowsAzure.Storage.StorageException:遠程服務器返回錯誤:(403) 禁止。---> System.Net.WebException :遠程服務器返回錯誤:(403) 禁止。”

如果我禁用存儲帳戶上的防火牆,一切正常。

所有服務都放置在同一資源組和區域(西歐)中。

我在應用服務上嘗試了“普通”(帶網關)和新(預覽)vNet 集成版本,但都以同樣的方式失敗。

我沒有使用 ASE(應用服務環境)。

我還在存儲防火牆上​​添加了以下例外:

存儲防火牆例外

首先,當您允許一組受信任的Microsoft服務繞過網絡規則時。 然后,這些服務將使用強身份驗證來訪問存儲帳戶。 在這種情況下,您可能認為防火牆規則將允許Microsoft.Networking服務。 但是,基本上, VNet集成並不意味着App Service位於VNet內部。 VNet集成使您的Web應用程序可以訪問虛擬網絡中的資源,但不會授予從虛擬網絡對Web應用程序的私有訪問權限。 我們通常用來安全地訪問VNet中的資源。

如果要將App Service放在VNet中,則需要將其部署在App Service Environment中 ,那么該服務已經在VNet中。

或者,您可以在存儲帳戶的防火牆規則中將出站Web應用程序服務IP地址列入白名單。

希望這會有所幫助,如果您有任何疑問,請隨時告訴我。

我一直在這個話題上掙扎。

首先,如果您使用防火牆限制對存儲的訪問,則需要將 VNET 添加到存儲防火牆。 添加 VNET 時使用您的委托子網。

當您在存儲和 VNET 之間添加專用鏈接時,Azure 會創建一個專用 DNS 區域,但您的應用程序不會自動使用它,即使集成到 VNET 也是如此。

您可以在此處找到更多信息https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet但具體而言,這一段適用:

應用與 VNet 集成后,它使用與 VNet 配置的相同的 DNS 服務器。 默認情況下,你的應用程序不適用於 Azure DNS 專用區域。 要使用 Azure DNS 專用區域,您需要添加以下應用設置: WEBSITE_DNS_SERVER,值為 168.63.129.16 WEBSITE_VNET_ROUTE_ALL,值為 1 這些設置將您的所有出站調用從您的應用發送到您的 VNet,並使您的應用能夠訪問 Azure DNS私人區域。 通過這些設置,你的應用可以通過在工作線程級別查詢 DNS 專用區域來使用 Azure DNS。

您可以通過打開調試控制台並使用 NameResolver 命令 NameResolver mystorageaccount.blob.core.windows.net 或 NameResolver mystorageaccount.queue.core.windows.net 來測試您的應用程序使用的 DNS 解析應該返回您的私人地址。 如果不是,則您有 DNS 問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM