虛擬機器擴展集 中的 VM 擴充功能布建錯誤
本文提供解決 VMExtensionProvisioningError、VMExtensionHandlerNonTransientError 或 VMExtensionProvisioningTimeout 錯誤的指導,這些錯誤會在您嘗試部署、更新、重新映射、啟動或調整虛擬機擴展集時出現。
注意
在 虛擬機器擴展集 的內容中,這些錯誤訊息中的「VM」是指特定虛擬機擴展集內的實例。
徵兆
如下列範例所示,您會看到 VMExtensionProvisioningError、VMExtensionHandlerNonTransientError 或 VMExtensionProvisioningTimeout 錯誤:
'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningError\\',\\'message\\':\\'Multiple VM extensions failed to be provisioned on the VM. Please see the VM extension instance view for other failures.
{'status': 'Failed','error': {'code':'VMExtensionHandlerNonTransientError','message': 'The handler for VM extension type 'Microsoft.EnterpriseCloud.Monitoring.OmsAgentForLinux' has reported terminal failure for VM extension 'OmsAgentForLinux' with error message: '[ExtensionOperationError] Non-zero exit code: 10
'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningTimeout\\',\\'message\\':\\'Provisioning of VM extension configure-settings has timed out. Extension provisioning has taken too long to complete.
原因
VM 擴充功能在布建狀態期間已停止或失敗。
取得擴充功能失敗的詳細資訊
若要開始解決此錯誤,您應該先判斷受影響的擴充功能和實例。 若要這樣做,請執行下列 Azure 命令行介面 (Azure CLI) 命令:
az vmss list-instances --resource-group MyResourceGroup --name MyVmss --query "[].{instanceId:instanceId, extension:resources[].id, extProvisioningState:resources[].provisioningState}"
此命令的輸出會顯示每個實例上延伸模組的布建狀態。 下列範例輸出顯示此延伸模組資訊如何依實例標識符分組。
在每個專用於特定實例的區段中,頂端的 「extProvisioningState」 列表會顯示該實例上所安裝延伸模組的布建狀態。 此清單後面接著 「extension」 清單,它會以相同的對應順序顯示延伸模組的名稱。
例如,在下列範例輸出中,此實例中的第一個布建狀態「失敗」會對應至第一個延伸模組 「customScript」。藉由比對列出的擴充功能,您也可以判斷在此範例中,列出的第二和第三個延伸模組已成功布建在相同的實例上。
嘗試相應放大虛擬機擴展集
如果每個實例上的擴充功能未失敗,請將新的實例新增至虛擬機擴展集,並查看延伸模組布建是否成功。 如果成功,請刪除擴充功能布建失敗的實例。
讀取受影響實例的記錄
若要進一步深入瞭解錯誤的原因,請登入受影響的實例。 視虛擬機擴展集的OS和受影響的擴充功能而定,流覽至適當的記錄,並檢閱受影響的時間範圍:
- Windows 虛擬機器擴展集:C:\WindowsAzure\logs\plugins\ExtensionName\Extension.log
- Linux 虛擬機器擴展集:/var/log/plugins/ExtensionName/Extension.log
確認失敗的擴充功能遵循最佳做法
如果擴充功能是可自定義的,例如自定義腳本擴充功能 (CSE) 或 Desired 狀態設定 (DSC),請確認您遵循所有必要的必要條件和建議的最佳做法。
重新安裝延伸模組
在 [虛擬機擴展集] 的 [ 擴充功能 ] 刀鋒視窗上,選取具有布建錯誤的擴充功能。
按一下 [解除安裝] 。
在 [ 延伸模組] 刀鋒視窗上,按兩下 [ 新增]。
選取並重新安裝相同的擴充功能。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。