Aws lambda 通过ALB在AWS lambda上返回自定义HTTP状态代码
我正在研究AWS Lambda+应用程序负载平衡器ALB(无服务器框架)。我想在发生错误时返回一个自定义状态代码。但我总是收到状态码502的错误Aws lambda 通过ALB在AWS lambda上返回自定义HTTP状态代码,aws-lambda,serverless-framework,aws-application-load-balancer,Aws Lambda,Serverless Framework,Aws Application Load Balancer,我正在研究AWS Lambda+应用程序负载平衡器ALB(无服务器框架)。我想在发生错误时返回一个自定义状态代码。但我总是收到状态码502的错误 def respond(err, res=None): return { "isBase64Encoded": False, "statusCode": 400 if err else 200, "statusDescription":
def respond(err, res=None):
return {
"isBase64Encoded": False,
"statusCode": 400 if err else 200,
"statusDescription": "400 Bad request" if err else "200 OK",
"headers": {
"Set-cookie": "cookies",
"Content-Type": "application/json"
},
"body": err.message if err else json.dumps(res)
}
ef lambda_handler(event, context):
print("Received event: " + json.dumps(event, indent=2))
operations = {
'DELETE': lambda ufun, x: ufun.delete_item(payload),
'GET': lambda ufun, x: ufun.get_item(payload),
'POST': lambda ufun, x: ufun.put_item(payload),
'PUT': lambda ufun, x: ufun.update_item(payload),
}
operation = event['httpMethod']
if operation in operations:
payload = event['queryStringParameters'] if operation == 'GET' else json.loads(event['body'])
return respond(None, operations[operation](ufun, payload))
else:
return respond(ValueError('Unsupported method "{}"'.format(operation)))
我错过什么了吗