我正在尝试使用 aws chalice、lambda 函数和 API Gateaway 调用我的 sagemaker 模型。
我正在尝试通过POST
请求发送图像,但在 lambda 函数上接收它时遇到问题。
我的代码如下所示:
from chalice import Chalice
from chalice import BadRequestError
import base64
import os
import boto3
import ast
import json
app = Chalice(app_name='foo')
app.debug = True
@app.route('/', methods=['POST'], content_types=['application/json'])
def index():
body = ''
try:
body = app.current_request.json_body # <- I suspect this is the problem
return {'response': body}
except Exception as e:
return {'error': str(e)}
刚刚回来
<Response [200]> {'error': 'BadRequestError: Error Parsing JSON'}
正如我之前提到的,我的最终目标是接收我的图像并用它提出一个 sagemaker 请求。但我似乎无法阅读图像。
我的 python 测试客户端如下所示:
import base64, requests, json
def test():
url = 'api_url_from_chalice'
body = ''
with open('b1.jpg', 'rb') as image:
f = image.read()
body = base64.b64encode(f)
payload = {'data': body}
headers = {'Content-Type': 'application/json'}
r = requests.post(url, data=payload, headers=headers)
print(r)
r = r.json()
# r = r['response']
print(r)
test()
请帮助我,我花了很多时间试图解决这个问题