如何使用邮递员将请求传递给sagemaker

时间:2018-04-05 15:03:12

标签: web-services amazon-web-services postman amazon-sagemaker

我在sagemaker上训练了一个模型并创建了端点。我正在尝试使用邮递员调用端点。但是在训练模型时甚至在训练模型之后,我还没有为训练数据指定任何标题。在向sagemaker发送邮件请求时,我不知道如何创建有效负载

2 个答案:

答案 0 :(得分:1)

创建端点后,您可以使用凭据和有效负载将其作为任何其他的restful服务进行调用。

我猜,可能有两个地方可能会卡住。 一个可能是,发送一个包含所有标题和所有内容的实际PostMan请求。 较新版本的Postman将AWS Signature作为授权类型之一。您可以使用它来调用服务。没有其他空间标题需要。请注意,Postman仍然存在一个错误(issue-1663),只有在您是AWS联合帐户时才会出现问题。个人帐户不应受此问题的影响。

或者,你可能会陷入实际的有效载荷。调用SageMaker端点时,有效负载将按原样传递给模型。如果要在将输入提供给模型之前预先处理输入,则必须实现input_fn方法并在实例化模型时指定。

您也可以使用AWS SDK boto3调用SageMaker端点,如下所示

function booleanFunction(param)

希望这有帮助。

答案 1 :(得分:1)

以下是调用快速入门指南中创建的sagemaker端点的示例。您可以使用text/csvapplication/json格式调用它:

邮递员: 您想要的网址是POST https://runtime.sagemaker。{{region}}。amazonaws.com/endpoints / {{aws_model_name}} / invocations

在“授权”标签中,选择类型AWS Signature,然后输入AccessKeySecretKey的值(建议您使用变量)和sagemaker服务名称。

在标题下添加:

Content-Typetext/csv

Acceptapplication/json

在正文中:粘贴在你的身体中,用逗号分隔(如果按照快速入门指南,在笔记本中,您只需运行print(valid_set[0][60:61])即可获得示例向量。您需要转换该值设置为逗号分隔值

点击Send,您应该好好去!

要发送JSON数据,请将Content-Type更改为application/json,并且您希望结构如下所示:

{
    "instances":[
        {
            "configuration": {},
            "features": [...]
        }
     ]
}