rest - 亚马逊 AWS 机器学习 HTTP 请求

标签 rest amazon-web-services httprequest amazon-machine-learning

我已经创建了具有工作实时端点的 AWS 机器学习模型。我想通过 HTTP 请求使用创建的服务。出于测试目的,我正在使用 Postman,我根据 Amazon 的 API 文档创建了请求,但每次遇到相同的异常时: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
}

我得到的异常(exception):
{
    "Output": {
        "__type": "com.amazon.coral.service#UnknownOperationException",
        "message": null
    },
    "Version": "1.0"
}

最佳答案

在 AWS 论坛上进行研究后,我发现了一些类似的 HTTP 请求。结果我有3个不正确的参数。

  • 主机地址应为:
  • Host: machinelearning.us-east-1.amazonaws.com
  • 内容类型:
  • Content-Type: application/x-amz-json-1.1
  • 在凭据参数中,目标服务必须指定为 machinelearning


  • 如何设置 Postman 的请求的简短说明:
  • Authorization选项卡选择 AWS Signature并填写 AccessKeySecrectKey .在 Service Name字段写machinelearning .点击Update Request ,这将更新您的标题。
  • Headers选项卡添加两个标题:

    key :X-Amz-Target , 值:AmazonML_20141212.GetMLModel
    key :Content-Type , 值:application/x-amz-json-1.1
  • 添加正文:
  • { "MLModelId": "YOUR_ML_MODEL_ID", "Verbose": true }
    正确的 HTTP 请求如下:
    POST  HTTP/1.1
    Host: machinelearning.us-east-1.amazonaws.com
    X-Amz-Target: AmazonML_20141212.GetMLModel
    Content-Type: application/x-amz-json-1.1
    X-Amz-Date: 20170727T113217Z
    Authorization: AWS4-HMAC-SHA256 Credential=JNALNFAFS/20170727/us-east-1/machinelearning/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
    }
    

    关于rest - 亚马逊 AWS 机器学习 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45104000/

    相关文章:

    c# - retrofit 不起作用(Github API)

    rest - Google Shopping REST API 按类别限制

    api - REST - 如何格式化内容中的链接

    amazon-web-services - 为什么 AWS NAT 网关需要弹性 IP?

    java - Android:使用基本身份验证无法从 http get 请求中获取 xml

    java - GWT 请求工厂的 ACL

    javascript - RESTful cookie 路径在 IE 中失败,没有尾部斜线

    node.js - aws Lambda 函数和 postgres DB 的问题

    python - 如何在 put_object 中指定标记?

    objective-c - 使用 NSURLConnection 可取消的 NSOperation