Безсерверное развертывание Lambda в node8.10 без загрузки кода

У меня есть лямбда-функция, развернутая с помощью 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:

2,6 Мб загрузки в списке в каталоге Lambda

Ошибка в редакторе кода консоли Lambda Не удалось открыть файл: /lambda/index.js

Файл 60 Мб все еще указан в корзине развертывания S3 Файл 60 Мб все еще указан в корзине развертывания S3

Я не могу объяснить, почему я получаю эту проблему или как насчет перехода на node8.10 вызовет это. Вне serverless.yml файл ни один код не был изменен с рабочего node6.10 версия. Кто-нибудь сталкивался с этой проблемой раньше или знает что-нибудь, что может исправить это?

1 ответ

Решение

Теперь я успешно решил эту проблему. Я не знаю, почему это так, но проблема, похоже, заключалась в развертывании на node8.10 с использованием более старой версии Serverless (1.27.2). Обновление до последней версии Serverless (1.32.0) исправило это немедленно.

Другие вопросы по тегам