Запрос HTTP машинного обучения Amazon AWS

Я создал модель машинного обучения AWS с рабочей конечной точкой в реальном времени. Я хочу использовать созданный сервис через HTTP-запрос. Для тестирования я использую Postman, я создал запрос в соответствии с документацией API Amazon, но каждый раз, когда я получаю то же исключение: UnknownOperationException. Пока я использую Python SDK, служба работает нормально. Ниже пример, который получает информацию о модели.

Это мой запрос (поддельные учетные данные):

POST  HTTP/1.1
Host: realtime.machinelearning.us-east-1.amazonaws.com
Content-Type: application/json
X-Amz-Target: AmazonML_20141212.GetMLModel
X-Amz-Date: 20170714T124250Z
Authorization: AWS4-HMAC-SHA256 Credential=JNALSFNLANFAFS/20170714/us-east-1/AmazonML/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date;x-amz-target, Signature=fiudsf9sdfh9sdhfsd9hfsdkfdsiufhdsfoidshfodsh
Cache-Control: no-cache
Postman-Token: hd9sfh9s-idsfuuf-a32c-31ca-dsufhdso

{
   "MLModelId": "ml-Hfdlfjdof0807",
   "Verbose": true
}

Исключение I получить:

{
    "Output": {
        "__type": "com.amazon.coral.service#UnknownOperationException",
        "message": null
    },
    "Version": "1.0"
}

2 ответов


после проведения исследований на форуме AWS я нашел несколько похожих HTTP-запросов. Оказывается, у меня было 3 неправильные параметры.

  1. адрес хоста должен быть:

Host: machinelearning.us-east-1.amazonaws.com

  1. тип содержимого:

Content-Type: application/x-amz-json-1.1

  1. в параметрах учетных данных целевая служба должна быть указана как machinelearning

краткая инструкция по настройке почтальона запрос:

  1. на выбрать AWS Signature и нажмите AccessKey и SecrectKey. В


пожалуйста, проверьте следующую ссылку и подтвердите свой sigv4

http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html