共用方式為


針對結構描述驗證失敗錯誤進行疑難排解

本文可協助使用者修正利用 Azure Machine Learning v2 CLI 針對 YAML 檔案提交 createupdate 命令後,可能發生的結構描述驗證失敗錯誤。 可能產生此錯誤的命令清單包括:

建立​​

  • 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 透過 createupdate 命令提交 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 檔案並未損毀,且檔案內容已正確格式化。