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" }

demandé il y a 2 ans562 vues
1 réponse
0
Réponse acceptée

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
répondu il y a 2 ans
  • Thanks Ed ! Yes the spaces on statusCode and statusDescription were the culprit .

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions