針對結構描述驗證失敗錯誤進行疑難排解
本文可協助使用者修正利用 Azure Machine Learning v2 CLI 針對 YAML 檔案提交 create 或 update 命令後,可能發生的結構描述驗證失敗錯誤。 可能產生此錯誤的命令清單包括:
建立
az ml job create
az ml data create
az ml datastore create
az ml compute create
az ml batch-endpoint create
az ml batch-deployment create
az ml online-endpoint create
az ml online-deployment create
az ml online-deployment create
az ml component create
az ml environment create
az ml model create
az ml connection create
az ml schedule create
az ml registry create
az ml workspace create
更新
az ml online-endpoint update
az online-deployment update
az batch-deployment update
az datastore update
az compute update
az data update
徵兆
使用者為完成特定任務 (例如建立資料資產、提交定型作業或更新線上部署) 而使用 Azure Machine Learning v2 CLI 透過 create 或 update 命令提交 YAML 檔案時,可能會發生「結構描述驗證失敗」錯誤。
原因
之所以會發生「結構描述驗證失敗」錯誤,是因為提交的 YAML 檔案不符合使用者嘗試建立或更新之資產類型 (工作區、資料、資料存放區、元件、計算、環境、模型、作業、批次端點、批次部署、線上端點、線上部署、排程、連線或登錄) 的指定結構描述。 有好幾種原因可能造成這種情況。
這項錯誤的一般修正程序是先前往 YAML 檔案的儲存位置,開啟檔案並進行必要編輯,然後儲存 YAML 檔案,再返回終端並重新提交命令。 下列各節會分別依各種原因詳細說明需要進行的變更。
錯誤:無效的值
提交的 YAML 檔案包含一或多個值類型錯誤的參數。 以 ml data create (亦即資料結構描述) 為例,「path」參數應使用 URL 值, 若提供非檔案路徑的數值或字串,就會被視為無效。 另一個可能是,參數也有可接受的值範圍,但提供的值不在該範圍內。 以 ml data create 為例,「type」參數僅接受 uri_file、uri_folder 或 ml_table, 其他所有值都會被視為無效。
解決方式:無效的值
如果您為參數提供的值類型無效,請檢查指定結構描述,並將值變更為正確的類型(注意:這是指為參數提供之值的資料類型,請勿與許多結構描述中的「type」參數混淆)。 如果值本身無效,請從預期的值範圍中選取值 (錯誤訊息中會說明範圍)。 確認無誤後儲存 YAML 檔案,然後重新提交命令。 這份結構描述清單 (機器翻譯) 列出了 Azure Machine Learning v2 中所有不同的資產類型。
錯誤:未知的欄位
提交的 YAML 檔案中所包含的一或多個參數,不屬於該資產類型的指定架構。 以 ml job create (亦即 commandjob
結構描述) 為例,若提供「name」參數便會發生問題,因為 commandjob
結構描述中並沒有這個參數。
解決方式:未知的欄位
在提交的 YAML 檔案中刪除無效的欄位。 確認無誤後儲存 YAML 檔案,然後重新提交命令。
錯誤:找不到檔案或資料夾
提交的 YAML 檔案包含「path」參數, 但提供作為該參數值的檔案或資料夾路徑不正確 (拼錯、遺漏附檔名等),或者檔案/資料夾不存在。
解決方式:找不到檔案或資料夾
在提交的 YAML 檔案中找到「path」參數,然後仔細檢查提供的檔案/資料夾路徑是否正確 (亦即路徑完整、沒有拼字錯誤、未遺漏檔案附檔名、特殊字元等)。 確認無誤後儲存 YAML 檔案,然後重新提交命令。 如果錯誤仍然持續發生,代表提供的位置沒有該檔案/資料夾。
錯誤:遺漏欄位
提交的 YAML 檔案遺漏必要的參數。 以 ml job create (亦即 commandjob
結構描述) 為例,如未提供「compute」參數就會發生此錯誤,因為執行命令作業時需要使用計算。
解決方式:遺漏欄位
在指定結構描述中查看您嘗試建立或更新的資產類型,了解有哪些必要參數及其正確的值類型。 這份結構描述清單 (機器翻譯) 列出了 Azure Machine Learning v2 中不同的資產類型。 請確認提交的 YAML 檔案具有所有必要的參數, 以及為這些參數提供的值屬於正確類型,或在接受的值範圍內。 確認無誤後儲存 YAML 檔案,然後重新提交命令。
錯誤:無法剖析
無法讀取提交的 YAML 檔案,因為語法錯誤、格式錯誤,或檔案中某處有不必要的字元, 例如在 YAML 檔案中某處錯誤輸入的特殊字元 (如冒號或分號)。
解決方式:無法剖析
請仔細檢查已提交 YAML 檔案的內容,確認語法正確、沒有不必要的字元和錯誤的格式設定。 修正上述問題後儲存 YAML 檔案,然後重新提交命令。
錯誤:找不到資源
提交的 YAML 檔案中有一或多個資源 (例如檔案/資料夾) 不存在,或者您沒有其存取權。
解決方式:找不到目標資源
請仔細檢查是否已正確指定資源的名稱,以及您是否有其存取權。 視需要進行變更後儲存 YAML 檔案,然後重新提交命令。
錯誤:無法序列化
YAML 中的一或多個欄位無法序列化 (轉換) 為物件。
解決方式:無法序列化
請確認您的 YAML 檔案並未損毀,且檔案內容已正確格式化。