Подтвердить что ты не робот

Функция AWS Lambda возвращает "Не удается найти индекс модуля", но обработчик в конфигурации установлен в индекс

Как объясняется в моем заголовке, я получаю следующую ошибку:

 {
  "errorMessage": "Cannot find module 'index'",
  "errorType": "Error",
  "stackTrace": [
    "Function.Module._resolveFilename (module.js:338:15)",
    "Function.Module._load (module.js:280:25)",
    "Module.require (module.js:364:17)",
    "require (module.js:380:17)"
  ]
}

Я пробовал оба решения, представленные в creating-a-lambda-function-in-aws-from-zip-file и simple-node-js-example-in-aws-lambda

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

и моя файловая структура: введите описание изображения здесь

и моя функция обработчика index.js выглядит так:

exports.handler = function(event, context) {

Что еще может быть причиной этой проблемы в стороне от того, что было сказано в этих двух ответах выше? Я пробовал оба решения, и я также выделил больше памяти для функции, просто потому, что она не могла работать.

РЕДАКТИРОВАТЬ - Ради попытки, я создал еще более простой вариант моего исходного кода, и он выглядел так:

var Q = require('q');
var AWS = require('aws-sdk');
var validate = require('lambduh-validate');
var Lambda = new AWS.Lambda();
var S3 = new AWS.S3();




theHandler = function (event, context) {

  console.log =('nothing');

}

exports.handler = theHandler();

И все же не работает с той же ошибкой?

4b9b3361

Ответ 1

Попробуйте закрепить и загрузить содержимое папки lambda-create-timelapse. Не сама папка.

Ответ 2

Если это было непонятно для кого-либо еще, выполните следующие действия:

Шаг 1 Перейдите в папку вашего проекта и откройте эту папку, чтобы вы попали в папку: Папка

Шаг 2 Выберите все изображения, которые вы хотите загрузить, в Lambda: Папка с выбранными файлами

Шаг 3 Щелкните правой кнопкой мыши и сжимайте файлы, которые вы выбрали: Правое меню мыши с выделенным параметром компрессии


Это даст вам .zip файл, который является файлом, который необходимо загрузить в Lambda:

Archive.zip output


Существует множество способов автоматизировать это, но это ручная процедура.

Ответ 3

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

Для тех, кто работает с терминалом...

В то время как INSIDE в каталоге, где находятся файлы .js, выполните следующие действия:

zip -r ../zipname.zip *

* дает клиенту указание закрепить все содержимое этой папки, ../zipname.zip сообщает ему имя файла zipname.zip и помещает его прямо за пределы этого текущего каталога.

Ответ 4

У меня была такая же проблема когда-то - я переформатировал код.

function lambdafunc1(event, context) {
...
...
...
}

exports.handler = lambdafunc1

Ответ 5

Правильное объявление функции Lambda может выглядеть следующим образом:

var func = function(event, context) {
   ...
};

exports.handler = func;

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