共用方式為


針對受控DevOps集區問題進行疑難解答

本文提供常見受控DevOps集區問題的解決方案。

集區建立錯誤

錯誤碼 描述
PoolProvisioningFailed 集區建立失敗,因為 Azure DevOps 組織許可權
UnauthorizedAccessToVirtualNetwork 集區建立失敗,因為 VNet 許可權

集區建立失敗,因為 Azure DevOps 組織許可權

集區建立失敗,並出現類似下列錯誤訊息的錯誤。

在 Azure DevOps 組織中找不到已登入的使用者

  • Validation failure "PoolProvisioningFailed": "Failed to provision agent pool. Exception: The logged in user, <your user>, was not found in the Azure DevOps organization provided, <your Azure DevOps organization>."

若要解決問題:

登入的使用者在 Azure DevOps 組織中沒有管理許可權

  • Validation failure "PoolProvisioningFailed": "Failed to provision agent pool. Exception: The logged in user, <your user>, does not have Manage permissions in the Azure DevOps organization provided, <your Azure DevOps organization>."

若要解決問題:

集區建立失敗,因為 VNet 許可權

集區建立失敗,並出現 UnauthorizedAccessToVirtualNetwork 類似下列錯誤的錯誤: Validation failure "UnauthorizedAccessToVirtualNetwork": "DevOpsInfrastructure service principal does not have Read access to virtual network <your VNet> in resource group <your resource group>. Give Reader and Network Contributor access to DevOpsInfrastructure service principal and try again.

若要解決此問題:

管線啟動延遲

使用受控 DevOps 集區時,您可能會遇到管道在觸發後,要花很長時間才開始執行的情況。 疑難解答指南的這一節說明可能會影響集區效能的常見因素。 如需詳細資訊,請參閱 管理成本和效能

檢查平行作業不足

受控 DevOps 集區代理程式會被視為 Azure DevOps 的自我裝載代理程式,而且需要自我裝載的平行作業才能執行。 例如,如果您的組織的自行架設並行計數為 10,您的組織只能同時執行 10 個自行架設管線工作。 如果佇列超過 10 個管線,一次只能執行 10 個管線。

檢查自我託管的平行作業數量,以確保您有足夠的容量來滿足工作負載的管線需求。 如需詳細資訊,請參閱設定和支付平行作業的費用

檢查代理程式設定上限

代理程式上限 設定可配置在受控 DevOps 資源池中運行的代理程式的最大數量。 如果 [ 代理程式上限 ] 設定為 5,受控 DevOps 集區最多可以執行五個並行管線。 如果超過五個管線已排入佇列,則在有五個可用的代理程式中有一個可用之前,其他管線才會啟動。

備註

代理程式上限會 設定可以同時布建的代理程式數目上限,但貴組織的自我裝載平行作業計數會指定可以同時執行的作業數目。 請確定您組織中有足夠的自我裝載平行作業,讓您的代理程式能夠執行作業。 如需詳細資訊,請參閱 Azure DevOps Services 平行作業定價

請考慮使用待命代理程式排程預先布建代理程式

如果停用 待命代理程式模式,當管線排入佇列時,受控 DevOps 集區的代理程式會根據需求啟動,通常新代理程式只需花費幾分鐘即可啟動,但有時最多可能需要 15 分鐘。

啟用 待命代理程式模式 時,您可以指定排程和代理程式計數,以隨時符合工作負載的需求。

如需詳細資訊,請參閱 管理成本和效能 - 使用待命代理程式進行預先配置

新集區的自動待命模式

管理 DevOps 集區會使用歷程記錄集區使用量數據,協助進行 其自動待命模式 調整預測。 新的集區沒有任何歷程記錄數據,因此代理程式可能會視需要建立。 若要改善效能,您可以切換至第一個月的手動待命模式,並在受控 DevOps 集區有時間觀察集區的使用量後切換到自動待命模式。

如果使用具有多個映像的待命代理程式,請檢查待命代理程式百分比

如果您使用待命代理程式搭配多個映像,請檢查每個映像的使用量歷程記錄,並將其與映像的 待命代理程式百分比 設定進行比較,以確保您的待命比率符合您的使用量。 例如,如果您有一個 Windows 映射和一個 Ubuntu 映射,且您的工作負載使用時間的 Windows 75%,請確定您的 Windows 映射已設定為 75 的待命代理程式百分比。

請考慮使用有狀態的資源池並設置寬限期,以保持代理程式在線上

在不使用待命代理程序的情況下改善代理程式效能的其中一個選項是使用具有簡短寬限期的具狀態代理程式。 當具有寬限期的具狀態代理程式完成作業時,它會在寬限期所指定的持續時間內保持在線,並等候其他作業。 如果您的工作負載是間歇式的,您可以設定寬限期,讓代理程式在作業穩定時保持連線,並在較慢的時期重新啟動。

如需詳細資訊,請參閱待命代理程式具狀態集區

查看逾時錯誤碼

如果您的代理程式指派逾時,您可以在 [概觀] 頁面的 [錯誤碼] 區段中檢查錯誤碼。

管線無法成功完成

檢查是否有映像更新

如果您的管線在映射更新之後開始失敗,您可以暫時將管線設定為使用先前的映像版本。 您可以將出現故障的管線設定為針對每條管線分別使用以前的映像版本,或可針對受管理的 DevOps 池中所有使用該映像的管線設定先前的映像版本。

若要查看管線是否因為映像版本變更而失敗,請比較失敗管線執行上的映像版本與上次成功管線執行中的映像版本。

  1. 移至您的管線 ,並檢閱 管線的管線執行歷程記錄

    資料流程執行的螢幕快照。

  2. 檢視您想要比較的兩次管線執行的執行詳細資訊,然後選擇管線作業來查看該作業的診斷資訊。 如果您的管線有多個作業,請選擇使用受控 DevOps 集區執行的作業。

    管道執行詳細資訊的螢幕快照。

  3. 選擇 [初始化作業],然後從 [目前映射版本 ] 區段擷取映像版本。

    管線執行映像版本的螢幕快照。

如果最近失敗的管線執行與先前成功執行之間的映像版本不同,則失敗可能是由映像更新所造成。 當您針對根本原因進行疑難排解時,您有兩個選擇可以暫時回復至先前的影像版本。

  • 若要僅使用前一版本的影像來執行失敗的管線,請將一個ImageVersionOverride需求新增至管線以指定前一版本。 如需詳細資訊,請參閱 ImageVersionOverride
  • 若要更新集區設定,使所有使用映像的管線均運行於先前版本,請更新您的 映像設定 並指定所需版本。

受控的 DevOps 集區會保留過去 20 個可供選取市集映像使用的映像,以及過去 10 個可供 Azure Pipelines 映像使用的映像。 過去的 Azure 計算資源庫映像版本是由這些 Azure 計算資源庫的擁有者所維護。

另請參閱