首页 > 解决方案 > AWS API Gateway 返回 TARGET_MODEL_HEADER_MISSING,即使目标模型在标头中传递

问题描述

我为 Sagemaker MultiDataModel 部署了一个端点。我可以使用 boto3 从本地计算机成功调用它。我已经为此 Sagemaker MultiDataModel 设置了一个 API 网关,并且我正在尝试使用 https 请求从模型中检索预测。但我不断收到 TARGET_MODEL_HEADER_MISSING 错误。

我的 https 请求如下所示:

import requests
headers = {'X-Amzn-SageMaker-Target-Model':'/jobtitles-exact'}
response = requests.request("POST"
, "https://XXXXXXXXXX.execute-api.eu-north-1.amazonaws.com/v1/predicted-job-titles"
, headers = headers
, data = data
)

根据文档源代码 ,我似乎正确地为标头提供了目标模型。但显然情况并非如此。

我应该如何在带有 https-request 的标头中提供目标模型?

标签: amazon-web-servicesamazon-sagemakerapi-gateway

解决方案


我找到了解决方案。除非明确告知,否则 API Gateway 不会将标头传递给 SageMaker。传递标题:

  1. 打开 API 的“方法执行”
  2. 转到“方法请求”
  3. 在“HTTP 请求标头”下,您应该添加要添加的标头的名称,例如:

标头上的方法请求

  1. 返回“方法执行”
  2. 转到“集成请求”
  3. 在 HTTP“标头”下,您添加要映射的标头和映射,例如: 在此处输入图像描述 瞧,标头被传递。

推荐阅读