В итоге: иногда мой обработчик AWS Lambda, построенный из Quarkus Funqy, не вызывается, и Quarkus, кажется, возвращает некоторый по умолчанию 404 HTML, оба при запуске локально с режимом Quarkus dev и развертываем нативного исполняемого для AWS Lambda. Я прошу помощь в исправлении этого поведения. ниже я определяю, как работает приложение и как оно настроено. Я собираюсь создать нативного исполняемого файла. < /P>
@ApplicationScoped
public class DeviceController {
private static final Logger log = LoggerFactory.getLogger(DeviceController.class);
private final DeviceService deviceService;
private final ObjectMapper objectMapper;
@Inject
public DeviceController(DeviceService deviceService) {
this.deviceService = deviceService;
this.objectMapper = new ObjectMapper().registerModule(new JavaTimeModule())
.disable(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS);
}
@Funq
public Map handler(Map apiRequestEvent) {
try {
String path = (String) apiRequestEvent.get("path");
String httpMethod = (String) apiRequestEvent.get("httpMethod");
String body = (String) apiRequestEvent.get("body");
Map queryStringParameters = readQueryParameters(apiRequestEvent);
if (!path.equals("/device")) {
throw new ServiceException(String.format("Path %s does not exist", path)
, GlobalExceptionCode.INVALID_PATH);
}
return switch (httpMethod) {
case "POST"-> this.createDevice(body);
case "GET"-> this.getDevice(queryStringParameters);
default -> throw new ServiceException("Invalid method", GlobalExceptionCode.INVALID_METHOD);
};
} catch (ServiceException ex ){
return handleServiceException(ex);
} catch ( ModelException ex){
return handleModelException(ex);
} catch (RuntimeException ex){
return handleRuntimeException(ex);
} catch (Exception e) {
return handleGenericException(e);
}
}
< /code>
Слой обработчика не является чем -то необычным: я могу выделить обработчик получает карту для события запроса API Gateway (с Body, QuerystringParameters, httpmethod и т. Д.) И возвращает другую карту для события ответа API Gateway. Он использует впрыск зависимости уровня обслуживания для обработки бизнес -логики. Есть вспомогательные методы для анализа входной карты и создания выходной карты. Даже не запускает точку останова от отладчика на первой строке), и вызов обработчика возвращает 404. < /p>
Вот Lambda, успешно работающая в режиме Quarkus dev, вызывая от почтальника: < /p>
Вот прерывистая ошибка при запуске локально:
Подробнее здесь: https://stackoverflow.com/questions/795 ... -execute-h