Я хочу получить эффективное архивирование файлов с помощью amazon lambda с ведрами s3. Файлы, которые я хочу заархивировать, находятся в ведре. Тестируемая лямбда должна получать пути к файлам и создавать из них zip
в том же сегменте.
Я использую эту библиотеку https://github.com/orangewise/s3-zip и Я тестирую его именно так, как на этом примере: https://github.com/orangewise/s3-zip/blob/master/aws_lambda.md
Я просто запускаю тест, который дает пути к двум файлам в качестве входных данных. Один из них имеет размер 2 Мб, а второй 58 Кб и относятся к типу docx
и doc
. Тестовое событие выглядит так:
{
"region": "eu-west-1",
"bucket": "bucket_name",
"folder": "folder_name/",
"files": [
"file1.doc",
"file2.docx"
],
"zipFileName": "test.zip"
}
Я получил этот отчет об испытаниях
START RequestId: xxx Version: $LATEST
2016-07-26T20:40:02.084Z xxx event {
region: 'eu-west-1',
bucket: 'bucket_name',
folder: 'folder_name/',
files: [ 'file1.doc', 'file2.docx' ],
zipFileName: 'test.zip' }
2016-07-26T20:40:02.765Z xxx append to zip file1.doc
2016-07-26T20:40:04.364Z xxx append to zip file2.docx
2016-07-26T20:40:04.364Z xxx end -> finalize
2016-07-26T20:40:07.066Z xxx { loaded: 3011247,
total: 3011247,
part: 1,
key: 'folder_name/test.zip' }
2016-07-26T20:40:08.232Z xxx { ETag: '"xyz"',
Location: 'https://bucket_name.s3.amazonaws.com/folder_name/test.zip',
key: 'folder_name/test.zip',
Key: 'folder_name/test.zip',
Bucket: 'bucket_name' }
END RequestId: xxx
REPORT RequestId: xxx Duration: 6149.09 ms Billed Duration: 6200 ms Memory Size: 128 MB Max Memory Used: 75 MB
Это означает, что для выполнения задачи amazon lambda требуется более 6 секунд. Кажется, это медленно. Могу ли я сделать это быстрее? Я уже пытался дать лямбде больше памяти, но безрезультатно.
Что может быть важно, я загрузил лямбду в виде zip-архива, потому что мне нужны зависимости node_modules для этой библиотеки, которую я использую.