У меня очень простая функция лямбда узла, которая считывает содержимое упакованного файла в нем. Я загружаю код в виде zip-файла. Структура каталогов выглядит следующим образом.чтение упакованного файла в пакете aws лямбда
index.js
readme.txt
Тогда нет в моем index.js файле:
fs.readFile('/var/task/readme.txt', function (err, data) {
if (err) throw err;
});
я получаю следующую ошибку NOENT: нет такого файла или каталога, откройте '/var/task/readme.txt'.
Я попытался ./readme.txt также.
Что мне не хватает?
Похоже, что текстовый файл не может быть включен в ваш почтовый индекс, поэтому я бы сначала дважды проверить это, загрузив zip-файл с консоли. В противном случае, не могли бы вы добавить немного больше контекста? Как выглядит остальная функция вашего обработчика? – commandt
Фактически я использую сервер без оболочки для упаковки и загрузки zip-файла на S3. Я проверил файл S3, и он содержит файл. То, что я пытаюсь сделать, - это прочитать ключи с зашифрованными ключами kms, чтобы моя лямбда могла получить ключи шифрования от kms для шифрования исходящих HTTP-вызовов третьей стороне. – rOrlig
Имеет ли файл S3 файл txt в ожидаемом месте? Кроме того, использование относительного пути, такого как ./readme.txt, может не работать, если serverless изменяет cdd вашей функции. Возможно, попробуйте __dirname + '/readme.txt', или вы можете попробовать выполнить регистрацию cdd вашей лямбда-функции с помощью process.cwd() – commandt