def lambda_handler(event, context):
data = json.loads(json.dumps(event))
#payload = data['data'] #---------------------->1
payload = "9,3,1,0,0,1,1,1,1,0,0,1". #--------->2
response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,ContentType='text/csv',Body=payload)
result = json.loads(response['Body'].read().decode())
return {
'statusCode': 200,
'headers': { 'Content-Type': 'application/json' },
'body': json.dumps({"isApproved": result})
};
当我通过API网关调用这个Lamda函数时,我能够得到我想要的东西--我提出了一个post请求。
但是,当我取消注释行-->1和注释-->2时,对于同一个post请求,我会得到{“message”:“”}。请注意,当我在lambda本身中运行任何一种方式时,请注意,它们都很好地工作,并且返回完全相同的结果。当我们发出API post调用时,这个问题就会出现。如果你有什么想法请告诉我。
发布于 2020-04-25 22:30:35
API在事件的body
属性中压缩HTTP请求主体。
要从事件中获取请求体(有效负载),您需要从' body‘属性获取它。
payload = json.loads(event['body'])
发布于 2020-04-26 13:59:56
按照Khan上面的建议,将问题分类:代码应该如下所示。
def lambda_handler(event, context):
print("Received event: " + json.dumps(event, indent=2))
data = json.loads(event['body'])
payload = data['data']
response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,ContentType='text/csv',Body=payload)
result = json.loads(response['Body'].read().decode())
return {
'statusCode': 200,
'headers': { 'Content-Type': 'application/json' },
'body': json.dumps({"isApproved": result})
};
但是,如果在Lambda中运行此操作,它将返回折叠错误。
"errorType": "KeyError",
尽管如此,API网关会使它变得非常好。
https://stackoverflow.com/questions/61427332
复制相似问题