Я пытаюсь создать простой лямбда-тип Hello World на Java и подключить его к шлюзу API. Кажется, это работает, когда я POST-объект JSON в теле, то есть в лямбда, я могу прочитать JSON. Однако я не могу понять, как читать параметры запроса или заголовки в лямбда-коде. Версия nodejs примера кода, доступного в документации aws, говорит о event.queryqueryStringParameters
. Что эквивалентно этому в Java-лямбде?
Ниже приведен мой самый простой код обработчика Java. Я называю это через URL API Gatweway следующим образом: curl -d '{"name": "john", "age": 23}' https://vb9lcs2c10.execute-api.us-east-1.amazonaws.com/test?hello=world
package examples;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.LambdaLogger;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
public class HelloJava {
public String handleRequest(String input, Context context) {
if (context != null) {
LambdaLogger logger = context.getLogger();
logger.log("Inside Lambda");
}
try {
// How do I read query params or headers here?
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> response = new HashMap<>();
Map<String,String> body = new HashMap<>();
body.put("hello", "world: ");
response.put("statusCode", 200);
response.put("body", mapper.writeValueAsString(body));
return mapper.writeValueAsString(response);
} catch (JsonProcessingException e) {
throw new RuntimeException("Error with json serializer",e);
}
}
}