Получение aws расшифровывает ответы до истечения времени ожидания лямбда-функции - PullRequest
0 голосов
/ 04 мая 2018

У меня есть функция AWS Lambda, написанная на Java. Эта функция запускает TranscriptionJob, а затем ждет ответа, подобного так:

while( true ){
    transcriptionJob = awsClient.getTranscriptionJob(getJobRequest).getTranscriptionJob();
    if( transcriptionJob.getTranscriptionJobStatus().equals(TranscriptionJobStatus.COMPLETED.name()) ){
        System.out.println("AWS transcribe completed with " + transcriptionJob.getMedia().getMediaFileUri());
        Date comleption = transcriptionJob.getCompletionTime();
        // duration until response in seconds 
        long duration = (comleption.getTime()-awsTranscribeStart.getTime())/1000;
        logger.log("AWS transcribe took " + duration + " seconds\n");
        break;
    }else if( transcriptionJob.getTranscriptionJobStatus().equals(TranscriptionJobStatus.FAILED.name()) ){
        System.out.println("AWS transcribe failed: " + transcriptionJob.getFailureReason());
        break;
    }
    System.out.println("Waiting for response...");
    try {
        Thread.sleep(10000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

Для моих более длинных аудиофайлов работа по транскрипции занимает до 10 минут, но лямбда-функция ограничена 5 минутами. Не существует "события завершения транскрипции" или чего-то подобного (пока).

Есть ли решение этой проблемы или мне нужно переключиться с AWS Lambda на что-то другое?

1 Ответ

0 голосов
/ 01 июня 2018

Я создал обходной путь, используя пошаговые функции.

enter image description here

На форуме aws есть еще одна ветка об этой проблеме.

...