【发布时间】:2020-06-22 06:37:44
【问题描述】:
让我来描述这个问题。我已经训练了一个 blazingtext 模型并部署了一个端点。 在我的笔记本实例中,我可以调用 model.predict 并从端点获取推论。 我现在正在尝试为端点设置一个 lambda 和一个 API 网关。我无法弄清楚 Invoke_endpoint(endpoint_name = mymodel, 正文 = 有效载荷)
我不断收到无效负载格式错误
这是我的payload 在测试 lambda 时的样子
{"instances":"string of text"}
文档说主体采用 b'bytes 或类似对象的文件。我一直在修补 IO,但没有运气。对于这个特定问题,没有好的博客或教程。只有一堆视频介绍了现有的千篇一律的示例。
import io
import boto3
import json
import csv
# grab environment variables
ENDPOINT_NAME = os.environ['ENDPOINT_NAME']
runtime= boto3.client('runtime.sagemaker')
def lambda_handler(event, context):
print("Received event: " + json.dumps(event, indent=2))
data = json.loads(json.dumps(event))
payload = data["instances"]
print(data)
#print(payload)
response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,
ContentType='application/json',
Body=payload.getvalue())
#print(response)
#result = json.loads(response['Body'].read().decode())
#print(result)
#pred = int(result['predictions'][0]['score'])
#predicted_label = 'M' if pred == 1 else 'B'
return ```
"errorMessage": "An error occurred (ModelError) when calling the InvokeEndpoint operation: Received client error (406) from model with message \"Invalid payload format\"
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-sagemaker