Не удается развернуть лямбда-функцию NodeJS AWS.Ошибка в Object.fs.openSync - PullRequest
0 голосов
/ 07 июня 2018

так, пока несколько дней назад я не развертывал свои функции Node.JS AWS Lambda с помощью короткого и простого сценария оболочки, который прекрасно работал.

Теперь я не знаю, почему или что я сделалразные, но по какой-то причине после каждого развертывания моей лямбда-функции я теперь получаю следующую ошибку при вызове функции через Alexa:

19:47:58
module initialization error Error
module initialization error
Error

19:47:59
START RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d Version: $LATEST
START RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d Version: $LATEST

19:47:59
module initialization error: Error at Object.fs.openSync (fs.js:646:18) 
at Object.fs.readFileSync (fs.js:551:33) 
at Object.Module._extensions..js (module.js:662:20) 
at Module.load (module.js:565:32) 
at tryModuleLoad (module.js:505:12) 
at Function.Module._load (module.js:497:3) 
at Module.require (module.js:596:17) 
at require (internal/module.js:11:18)

module initialization error: Error
at Object.fs.openSync (fs.js:646:18)
at Object.fs.readFileSync (fs.js:551:33)
at Object.Module._extensions..js (module.js:662:20)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)

19:47:59
END RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d

19:47:59
REPORT RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d  
Duration: 218.74 ms  Billed Duration: 300 ms 
Memory Size: 128 MB Max Memory Used: 20 MB

REPORT RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d  
Duration: 218.74 ms Billed Duration: 300 ms 
Memory Size: 128 MB Max Memory Used: 20 MB  

Теперь вот часть, которая действительно делает меня не понимающим, как я могу решитьэто, (и это, вероятно, что-то локальное на моем Mac, я думаю).Если я загружаю / экспортирую ранее работающий пакет развертывания из своей функции Lambda и непосредственно перезагружаю файл Zip, он работает .

Если я разархивирую файл и снова разархивирую его, яполучите ошибку

без каких-либо изменений в коде.Это то, что заставляет меня задуматься, если что-то не так с архивированием на моем Mac или, возможно, файловой системой?

Я использую Mac OSX High Sierra, Node 6.10 / 8.10 через nvm.Код на лямбде работает с 6.10 и 8.10

Любые предложения приветствуются:)

Редактировать: Последний рабочий коммит был сделан на ПК с Windows ... Я немного волнуюсь, изменилась ли файловая системакак-то ломает архивирование / загрузку.Я постараюсь глубже изучить это.

Ответы [ 3 ]

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

В прошлом я сталкивался с проблемами с Lambda и кодом с машин Windows.Решение (для меня) состояло в том, чтобы chmod -R 644 lambdaDirectory из-за пределов каталога, исправить то, что Windows сделала с разрешениями.Понятия не имею, что может привести к загрузке / повторной загрузке, может быть, AWS что-то делает с манифестом?

У меня также были проблемы с zip-файлами, поступающими с других машин, использующих сторонние инструменты сжатия, поскольку они сжимали весь каталог в архив с таким же именем, а не только с содержимым.То есть вы не хотите, чтобы lambdaDirectory/ был включен в ваш lambdaDirectory.zip.Чтобы решить эту проблему, запустите zip -r lambdaDirectory.zip ./* из каталога.

0 голосов
/ 13 февраля 2019

Мы загружали ZIP-архив с кодом в AWS Lambda.

Проблема для нас заключалась в том, что у файлов внутри .zip не было общедоступных разрешений.

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

Хорошо, единственное, что смогло решить эту проблему, - вернуться к последнему коммиту, который я сделал из OSX, и проигнорировать последние 3 коммита, которые я сделал для Windows.

Похоже, что были некоторыеизменения пути или кодировки, которые были внесены путем фиксации в окнах, которые разрешены в этой ошибке.К сожалению, я не вижу их в diff-файлах коммитов.

Поэтому поиск различий между операционными системами может быть здесь важным.

...