Я вызываю класс ApplicationHandler с помощью API Gateway, но также хочу вызвать другой метод в нем с событием S3. Я знаю, как вызвать это с одним событием, но я не уверен, как сделать это с двумя. Мой текущий код:
public class ApplicationHandler implements RequestHandler<Map<String,Object>, String> {
String jobName = "transcription1";
ServiceHttpAndTranslation serviceCollectHttp = new ServiceHttpAndTranslation();
ServiceEmail serviceEmail = new ServiceEmail(jobName);
public ApplicationHandler() throws IOException {
}
public String handleRequest(Map<String,Object> input, Context context) {
LambdaLogger logger = context.getLogger();
ObjectMapper mapper = new ObjectMapper();
context.getLogger().log("Input: " + input);
for (String name: input.keySet()){
String key = name.toString();
String value = input.get(name).toString();
logger.log(key + " " + value);
}
try {
String base64 = String.valueOf(input.get("mp3Base64")).replaceAll(" ","").replaceAll("\"","");
String response = serviceCollectHttp.createTranscription(base64, jobName);
return response;
} catch (JsonProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
return mapper.writeValueAsString("Complete");
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
public String handleRequest(S3Event s3Event, Context context) {
serviceEmail.sendEmail(jobName);
return "complete";
}