You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Postman调用Amazon SageMaker端点并构造请求Payload

如何构造Amazon SageMaker端点的Postman请求Payload

别担心,SageMaker端点的Payload格式其实和你训练时的请求头关系不大,核心是看你的模型类型(内置算法/自定义模型)以及推理逻辑怎么解析输入。我给你分情况拆解:

1. 如果你用的是SageMaker内置算法(比如XGBoost、Linear Learner)

内置算法都有固定的推理输入格式,常见的两种:

  • CSV格式:直接传和训练时单条样本一致的特征值,用逗号分隔。比如训练时你的单条数据是0.5,2.3,1.1,那Payload就直接写这个字符串,请求头设置Content-Type: text/csv。
  • JSON格式:用instances字段包裹特征数组,示例如下:
    {
      "instances": [
        [0.5, 2.3, 1.1]
      ]
    }
    
    这时候请求头要设Content-Type: application/json。

2. 如果你用的是自定义模型(自己写的训练/推理脚本)

这时候完全看你在inference.py里的input_fn函数是怎么处理输入的——这个函数就是用来解析请求Payload的。举个例子:
如果你的input_fn是这么写的(只接受JSON格式,解析data字段):

def input_fn(request_body, request_content_type):
    if request_content_type == 'application/json':
        import json
        input_data = json.loads(request_body)
        return input_data['data']
    raise ValueError(f"Unsupported content type: {request_content_type}")

那你Postman里的Payload就得对应这个结构:

{
  "data": [
    [0.5, 2.3, 1.1]
  ]
}

同时请求头必须设Content-Type: application/json。

快速摸准格式的小技巧

如果你记不清或者不确定,直接用SageMaker控制台的「测试端点」功能抄作业:

  • 打开SageMaker控制台,找到你的端点,点击「测试」
  • 选择对应内容类型,输入和训练时一致的单条测试数据
  • 点击测试,成功后把这里的内容类型和Payload原封不动复制到Postman里就行

避坑提醒

  • 一定要保证Content-Type和Payload格式匹配,不然会返回415错误
  • 特征顺序必须和训练时完全一致,不然推理结果会完全不对
  • 如果训练时做了数据预处理(比如归一化、编码),要么Payload传预处理后的数据,要么把预处理逻辑写到inference.py的input_fn里

内容的提问来源于stack exchange,提问作者Sujay DSa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:07:20