Как вызвать ApplicationHandler различными методами в AWS - PullRequest
0 голосов
/ 11 января 2020

Я вызываю класс 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";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...