AWS SageMaker端点报错INVALID_INFERENCE_TYPE,请求排查
排查SageMaker端点
INVALID_INFERENCE_TYPE错误 1. 核对推理请求类型与端点配置是否匹配
- 若你创建的是实时端点,只能用同步API
InvokeEndpoint调用,不能用异步推理API(如InvokeEndpointAsync);如果是异步端点,则必须对应异步调用方式。 - 检查端点创建时的配置:如果添加了
AsyncInferenceConfig,说明是异步端点,调用方式必须对应。
2. 检查容器推理脚本的请求处理逻辑
SageMaker对推理请求格式有固定规范,哪怕本地运行正常,也要确保脚本适配SageMaker的调用逻辑:
- 实时推理请求一般为JSON格式,脚本需要从
stdin读取输入,处理后通过stdout返回结果。 - 验证脚本是否正确处理
application/json这类SageMaker支持的Content-Type,比如predict函数是否正确解析请求结构。 - 本地测试时要模拟SageMaker的请求格式,比如用:
而非简单的字符串输入,确保和线上调用逻辑一致。echo '{"input": "hello world"}' | docker run -i your-image
3. 确认调用端点时的Content-Type设置
- 调用时指定的
Content-Type必须是容器脚本支持的类型,比如脚本只处理application/json,就不能用text/plain发送请求。 - 检查调用代码里的
ContentType参数,确保和容器支持的类型匹配。
4. 查看端点的CloudWatch日志
- 进入CloudWatch,找到对应端点的日志组(通常是
/aws/sagemaker/Endpoints/your-endpoint-name),查看推理容器的日志,里面可能有更详细的错误细节,比如请求格式不兼容、脚本抛出异常等。
5. 验证模型配置的兼容性
- 如果是通过模型包创建的端点,检查模型包的
InferenceSpecification是否正确声明了支持的推理类型(实时/异步)和Content-Type。 - 确认模型的
ModelDataUrl指向正确的模型文件,且SageMaker角色拥有该S3路径的访问权限。
内容的提问来源于stack exchange,提问作者user3549576
相关产品推荐
相关产品推荐

