18

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

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

ответ

13

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

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

UPDATE: теперь вы можете использовать новый serverless-serve плагин для этого.

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

+0

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

1

В 1.4 еще не выпущена ...

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

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

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

npm install deepify -g 

deepify run-lambda --help 

    [email protected] - 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 

Раскрытие информации: Я один из авторов этих рамок

+1

не может заставить это работать:/зависает после «запуска лямбды». – tedder42

0

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

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

+2

Функция 'command 'не найдена' – GreenAsJade

1

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

Архитектура показано здесь: enter image description here

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

sls proxy 

Вы можете посылать запросы к службе локально:

enter image description here

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

Смежные вопросы