Как проверить локальные функции aws lambda

У меня есть мобильное приложение, разработанное с помощью node.js express. Я попробовал его развернуть его как lambda-сервис. Для этого я создал проект Serverless Framework ( https://github.com/serverless ). Раньше я тестировал мобильное приложение локально, открывая express-приложение. Теперь я не могу найти метод для тестирования моего мобильного приложения локально без локального бэкэнд. команда jaws run только после ее вызова.

Есть ли способ запустить lambda-функцию в качестве веб-службы? Или есть альтернатива безсерверной платформе?

Не похоже, что есть способ сделать это прямо сейчас, но версия 1.4.0 должна быть выпущена, и, помимо всего прочего, она должна включать новую команду «jaws serve», которая должна решить вашу проблему.

Вот PR: https://github.com/jaws-framework/JAWS/pull/269

UPDATE: теперь вы можете использовать новый сервер без сервера.

UPDATE 2: serverless-serve не обновлялся через некоторое время, похоже, что serverless-offline – это гораздо лучший вариант для эмуляции функций Lambda.

Я не уверен, что этот вопрос по-прежнему актуальным или нет, но я использую DEEP Framework для проверки кода локально и / или развертывания на AWS Lambda. Проверь это:

 npm install deepify -g deepify run-lambda --help run-lambda@1.6.8 - Run Lambda function locally Usage example: deepify run-lambda path/to/the/lambda -e='{"Name":"John Doe"}' Arguments: path: The path to the Lambda (directory of handler itself) Options: --event|-e: JSON string used as the Lambda payload --skip-frontend-build|-f: Skip picking up _build path from the microservices Frontend --db-server|-l: Local DynamoDB server implementation (ex. LocalDynamo, Dynalite) --version|-v: Prints command version --help|-h: Prints command help 

Раскрытие информации: Я являюсь одним из участников этой структуры

Беспозвоночный плагин Bespoken делает ваши местные Lambdas доступными извне. Это очень полезно как для локального тестирования с помощью Postman, так и для Webhook-сервисов (таких как Alexa, Slack, Twilio и т. Д.).

Архитектура показана здесь: введите описание изображения здесь

Чтобы использовать его, вы просто установите плагин, а затем запустите:

 sls proxy 

Затем вы можете начать отправку запросов на свою службу локально:

введите описание изображения здесь

Мы считаем, что это очень полезный инструмент для тестирования без сервера.

Поскольку 1.4 еще не выпущен …

На прошлой неделе мне нужно было точно то же самое. Поэтому я создал небольшой макетный сервер, который можно запускать локально: https://github.com/martinlindenberg/JawsLocalServer

  • Все заголовки и параметры были скопированы в объект-событие, переданный обработчику.
  • Объект контекста – это простой объект, который пересылает данные в объект ответа

Начиная с даты этого сообщения, вы можете запускать функции локально, выполняя sls function run [name-of-function] . Любой json, используемый в event.json вашей функции, будет передан в вашу функцию.

Для тестирования конечных точек вы также можете использовать Serverless Offline, который является вилкой безсерверного сервиса .

Это может быть слишком поздно .. Но теперь вы можете попробовать Serverless-Offline ( https://www.npmjs.com/package/serverless-offline ) работает как шарм

Также это страница github для него ( https://github.com/dherault/serverless-offline )

Теперь вы можете использовать lambda-local .

Установите его следующим образом:

 sudo -H npm install -g lambda-local 

Добавьте свои параметры как объект JSON в файл, в этом примере event.json , и вызовите файл index.js следующим образом:

 lambda-local -l index.js -h handler -e event.json