AWS Lambda fs.readfile проблема - PullRequest
       1

AWS Lambda fs.readfile проблема

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

Я упаковываю несколько файлов в свой лямбда-пакет, который мне нужен.Я использовал какой-то пример, чтобы почти все заработало.

Я могу проверить путь к файлу ОК

const deviceCert = path.resolve(certType + "-deviceCert.key");

, который выходит из системы

"message": "Resolved path to TEST-deviceCert.key: /var/task/TEST-deviceCert.key"

когда я пытаюсь прочитать файл, используя

fs.readFile(deviceCert, (err, data) => {

    if (err) {

        log.error(`Verify deviceCert failure: ${err}`);
        responseBody = Helper.buildCORSResponse(502, JSON.stringify({ message: "Unable to locate file required" }));

        return callback(null, responseBody);

    }

});

, я получаю следующую ошибку

Error: ENOENT: no such file or directory, open '/var/task/TEST-deviceCert.key'"

Если я могу проверить путь, то почему я не могу его прочитать?

Есть идеи ??

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

в итоге подтвердил, что без сервера упаковывал нужные мне файлы.

Используя fs.readdir, я смог отладить проблему и найти путь, который процесс упаковки создавал в пакете Lambda

/ var / task / src // Certs /

Надеюсь, это поможет кому-то в будущем !!

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

Скопировано из node.js path.resolve () Документация по API:

Метод path.resolve () разрешает последовательность путей или сегментов пути в абсолютнуюpath.

Другими словами, resolve объединяет последовательность строк в одну строку, отформатированную как абсолютный путь.Тем не менее, он не проверяет, есть ли файл в этом месте.Вы можете использовать fs.stat () или fs.access () для проверки наличия и доступа к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...