AmazonS3.readObject () очень медленный от AWS лямбда - PullRequest
1 голос
/ 03 мая 2020

Я читаю файл 1,5 МБ, расположенный на S3, из AWS лямбды:

public class AwsFileStorage {

    private static final AmazonS3 amazonS3;
    static {
        var builder = AmazonS3ClientBuilder.standard();
        builder.setRegion(MY_REGION);
        amazonS3 = builder.build();
    }

    public InputStream read(String filekey) {
        var initTime = Instant.now(); // Timer ON
        var s3Object = amazonS3.getObject("bucket-name", filekey);    
        var endTime = Instant.now();  // Timer OFF

        var millis = Duration.between(initTime, endTime).toMillis(); 
        System.out.println(millis);

        return s3Object.getObjectContent();
    }
}

Когда я запускаю этот код на 512 МБ AWS лямбда (в том же регионе моего S3 ) прямо из консоли AWS я получил:

3642 миллис

Но когда я запускаю тот же код, также извлекаю файл из AWS S3 :

486 миллис

Я не понимаю, как это возможно, что выполнение AmazonS3.getObject() могло бы работать на моем ноутбуке в 10 раз быстрее, чем с лямбда, выполненного через инфраструктура AWS, даже если файл также размещен в той же инфраструктуре AWS - в том же регионе.

Есть ли причина такой задержки? Есть ли другой, более оптимальный способ чтения файла, размещенного на S3, из AWS лямбды?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Технически, даже если он размещен публично, помните, что он должен пройти через пабли c inte rnet, чтобы достичь S3, который находится в зоне AWS Publi c для этого региона.

You мог бы перенести вашу лямбду в свой VP C и добавить VP C конечную точку шлюза для S3 .

Дополнительно можете подтвердить, что это среднее время лямбда-запроса, а не только первый запрос? Если так, то это может быть холодный старт

0 голосов
/ 03 мая 2020

Это зависит от объема памяти и ресурсов процессора, которые вы выделяете при запуске процесса на своем ноутбуке. Это может быть выше, чем 512 МБ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...