对架构验证失败错误进行故障排除

本文帮助解决用户在使用 Azure 机器学习 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 机器学习 v2 CLI 通过 create 或 update 命令提交 YAML 文件以完成特定任务(例如创建数据资产、提交训练作业或更新联机部署)时,他们可能会遇到“架构验证失败”错误。

原因

发生“架构验证失败”错误的原因是提交的 YAML 文件与用户尝试创建或更新的资产类型(工作区、数据、数据存储、组件、计算、环境、模型、作业、批处理终结点、批处理部署、联机终结点、联机部署、计划、连接或注册表)的规定架构不匹配。 这可能是由于多种原因造成的。

修复此错误的一般过程是首先转到存储 YAML 文件的位置,打开该文件并进行必要的编辑,保存该文件,然后返回终端并重新提交命令。 以下各部分将根据原因详细说明所需的更改。

错误 - 无效值

提交的 YAML 文件包含一个或多个值类型不正确的参数。 例如 – 对于 ml data create(即数据架构),“path”参数应是一个 URL 值。 提供不是文件路径的数字或字符串将被视为无效操作。 该参数可能还包含可接受值的范围,而提供的值不在该范围内。 例如 – 对于 ml data create,“type”参数只接受 uri_file、uri_folder 或 ml_table。 任何其他值都将被视为无效。

解决方法 - 无效值

如果为参数提供的值的类型无效,请检查规定的架构并将值更改为正确的类型(注意:这表示为参数提供的值的数据类型,请不要与许多架构中的“type”参数相混淆)。 如果值本身无效,请从预期的值范围内选择一个值(可在错误消息中找到该值)。 保存 YAML 文件并重新提交命令。 此处提供了 Azure 机器学习 v2 中所有不同资产类型的架构列表。

错误 - 未知字段

提交的 YAML 文件包含的一个或多个参数不是该资产类型的规定架构的一部分。 例如 – 对于 ml job create(即 commandjob 架构),如果提供了名为“name”的参数,则会遇到此错误,因为 commandjob 架构没有此类参数。

解决方法 - 未知字段

在提交的 YAML 文件中,删除无效的字段。 保存 YAML 文件并重新提交命令。

错误 - 找不到文件或文件夹

提交的 YAML 文件包含“path”参数。 作为该参数的值提供的文件或文件夹路径不正确(拼写错误、缺少扩展名等),或者该文件/文件夹不存在。

解决方法 - 找不到文件或文件夹

在提交的 YAML 文件中,转到“path”参数,并仔细检查提供的文件/文件夹路径是否输入正确(即路径是否完整、没有拼写错误、没有遗漏文件扩展名、是否包含特殊字符等)。 保存 YAML 文件并重新提交命令。 如果该错误仍然存在,则表示该文件/文件夹不在提供的位置。

错误 - 缺少字段

提交的 YAML 文件缺少必需的参数。 例如– 对于 ml job create(即 commandjob 架构),如果未提供“compute”参数,则会遇到此错误,因为运行命令作业需要计算。

解决方法 - 缺少字段

检查你尝试创建或更新的资产类型的规定架构 – 检查需要哪些参数及其正确的值类型是什么。 此处提供了 Azure 机器学习 v2 中不同资产类型的架构列表。 确保提交的 YAML 文件包含所有必需的参数。 另外,确保为这些参数提供的值类型正确,或者在可接受的值范围内。 保存 YAML 文件并重新提交命令。

错误 - 无法分析

无法读取提交的 YAML 文件,因为语法错误、格式错误或文件中的某个位置存在不需要的字符。 例如 – 在 YAML 文件中的某个位置错误输入了特殊字符(例如冒号或分号)。

解决方法 - 无法分析

仔细检查提交的 YAML 文件内容是否语法正确,不包含不需要的字符且未使用错误的格式。 修复所有这些问题,保存 YAML 文件并重新提交命令。

错误 - 找不到资源

提交的 YAML 文件中的一个或多个资源(例如文件/文件夹)不存在,或者你无权访问它。

解决方法 - 找不到资源

仔细检查是否正确指定了资源的名称,以及你是否有权访问它。 根据需要进行更改,保存 YAML 文件并重新提交命令。

错误 - 无法序列化

YAML 中的一个或多个字段无法序列化(转换)为对象。

解决方法 - 无法序列化

仔细检查 YAML 文件是否未损坏,以及文件内容的格式是否正确。