使用Amazon SageMaker CreateModel函数时遇验证异常错误求助
问题解决思路:CreateModel不支持OCI镜像manifest类型
问题根源
你构建的自定义镜像是OCI标准格式(manifest类型为application/vnd.oci.image.manifest.v1+json),但目标服务的CreateModel接口仅支持Docker标准的manifest类型(application/vnd.docker.distribution.manifest.v2+json),这是导致报错的核心原因。
具体解决步骤
转换镜像格式为Docker兼容类型
可以用skopeo工具直接转换OCI镜像并推送到镜像仓库:skopeo copy oci://<原镜像地址> docker://<目标镜像地址>如果是本地构建镜像,也可以在构建时直接指定输出为Docker格式:
docker build --output type=docker -t <镜像名:标签> .验证转换后的镜像格式
转换完成后,用以下命令确认manifest类型是否符合要求:skopeo inspect docker://<目标镜像地址> | jq '.ManifestMediaType'输出应为
application/vnd.docker.distribution.manifest.v2+json。重新调用CreateModel接口
使用转换后的Docker格式镜像地址执行CreateModel操作,即可通过媒体类型校验。
额外提示
如果使用托管型镜像仓库,部分仓库提供了OCI与Docker格式的自动转换功能,可检查仓库配置项,手动触发格式转换后再使用镜像。
内容的提问来源于stack exchange,提问作者terrygryffindor
相关产品推荐
相关产品推荐

