У меня есть лямбда-функция, развернутая с помощью Serverless.Он был развернут с node6.10
средой выполнения, поэтому я решил вместо этого развернуть службу с node8.10
.
Однако после этого повторного развертывания я столкнулся со странной проблемой, когда не мог вызвать функцию и не могболее длительное развертывание обновлений для функции, так как размер файла был слишком большим (60 МБ +).Я смог решить эту проблему, удалив и переустановив serverless-plugin-optimize
.
. Это решило проблему размера файла (теперь это около 2 МБ), но я все еще не могу вызвать функцию.Попытка вызвать его приводит к следующему журналу в CloudWatch:
Unable to import module 'lambda/index': Error
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
Тогда я ожидал, что путь к файлу в моем serverless.yml
для функции был неправильным или что он не экспортировался правильно.
. / Serverless.yml
functions:
funcOne:
handler: lambda/index.handler
. / Lambda / index.js
exports.handler = function (event, context) {
// execution code
};
Однако это не отображаетсяв данном случае я знаю это, потому что установка debug: true
для serverless-plugin-optimize
оставляет папку _optimize
с моим минимизированным кодом. Однако почему-то, несмотря на то, что он присутствует локально, кажется, что он не выполняет загрузку в Lambda.
При просмотре этого в консоли AWS я получаю следующее:
2,6 Мб загрузки в списке в каталоге Lambda:
Ошибка в редакторе кода консоли Lambda
60 МБ Файл, все еще перечисленный в области развертывания S3
Я не могу объяснить, почему у меня возникает эта проблема или что из-за перехода на node8.10
может вызвать ее,За пределами файла serverless.yml
ни один код не был изменен из рабочей версии node6.10
.Кто-нибудь сталкивался с этой проблемой раньше или знает что-нибудь, что могло бы исправить это?