InvalidLambdaresponse : While calling a Java Handler sitting behind an ALB

0

I'm trying to invoke a Lambda (Java 8) using a DNS endpoint --> ALB --> Lambda as the target group. Lambda does what its supposed to do (Upload a file in S3) upon its invocation but on the postman or curl command i see a 502 error . When i check the ALB logs it says InvalidLambdaResponse

My lambda is returning a Map (String , Object). When i print the JSON it looks good as well. What am i missing here ?

{ "headers": { "Cache-Control": "no-store", "Content-Type": "application/json" }, "isBase64Encoded": "False", "statusCode ": "200", "statusDescription ": "200 OK", "body": "Lambda S3 Upload" }

已提問 2 年前檢視次數 563 次
1 個回答
0
已接受的答案

It looks like there are a few small errors in the format of the object you're returning. There are some additional spaces in some of the keys (might just be an effect of copy and paste), isBase64Encoded should be boolean, and statusCode should be an integer. https://docs.aws.amazon.com/elasticloadbalancing/latest/application/lambda-functions.html#respond-to-load-balancer

This slightly modified version seems to work:

{
  "headers": {
    "Cache-Control": "no-store",
    "Content-Type": "application/json"
  },
  "isBase64Encoded": false,
  "statusCode": 200,
  "statusDescription": "200 OK",
  "body": "Lambda S3 Upload"
}
Ed
已回答 2 年前
  • Thanks Ed ! Yes the spaces on statusCode and statusDescription were the culprit .

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南