Я реализовал приложение Spring Boot и загрузил его в функции AWS Lambda.У меня есть два вопроса:
Чтобы проверить лямбда-функцию, как передать несколько аргументов в «Настроить тестовое событие»?Обычно запрашивается передача JSON.
Как передать два входных аргумента с помощью шлюза API, если API вызывает эту лямбда-функцию?
Контроллер пружинной загрузки
@RestController
@RequestMapping("/controller")
public class Contoller{
public String method(String a, String b) {
return "Input passed a ["+a+"], b["+b+"]";
}
}
Лямбда-манипулятор с пружинной загрузкой
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.amazonaws.serverless.exceptions.ContainerInitializationException;
import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
import com.amazonaws.serverless.proxy.spring.SpringBootLambdaContainerHandler;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
public class LambdaHandler implements RequestStreamHandler {
private static SpringBootLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;
static {
try {
handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(Application.class);
handler.activateSpringProfiles("lambda");
} catch (ContainerInitializationException e) {
// Re-throw the exception to force another cold start
e.printStackTrace();
throw new RuntimeException("Could not initialize Spring Boot application", e);
}
}
@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
handler.proxyStream(inputStream, outputStream, context);
// just in case it wasn't closed by the mapper
outputStream.close();
}
}