Безсерверный вызов локальный ничего не делает - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь запустить локальный лямбда-узел для его отладки.Я использую Serverless, и эта конфигурация запуска в vsCode

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceRoot}/node_modules/.bin/sls",
      "args": [
        "invoke",
        "local",
        "--function",
        "hello",
        "--data",
        "hello world"
      ]
    }
  ]
}

Мой export.handler выглядит следующим образом:

module.exports.handler = (event, context, callback) => {
  if (event.triggerSource === CONSTANTS.TRIGGER_SOURCE) {
    console.log("event = " + JSON.stringify(event));
    const uri = process.env.SCT_URL_BASE;
    const country = process.env.SCT_COUNTRY;

    const username = 
event.request.userAttributes[CONSTANTS.USER_ATTRIBUTES];
    const codeP = event.request.codeParameter;
    console.log("URI = " + url);
    console.log("Code:" + codeP);

    getUrlData(uri, country, username, codeP);
  } else {
    context.done(null, event);
  }
};

Когда я запускаю режим de debug, он ничего не делает.Без сервера не выдает никакой ошибки, я просто не могу добраться внутри функции.

Также есть еще одна вещь, которую я не могу понять.В безсерверной документации сказано:

- function or -f Имя функции в вашем сервисе, которую вы хотите вызвать локально.Обязательно.

Я не знаю, что они ссылаются на это, если это функция, которую мы вызываем для запуска лямбда-функции, или функция, которую она вызывается при вызове лямбды.В этом случае экспортируемая функция является «обработчиком», но она также не работает.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Запуск без сервера на локальном сервере является оксюморонным и раздражающим ...

Как насчет использования решения отладки для живых лямбд, таких как Rookout ?Он работает на локальном SAM, но еще лучше - работает на живых функциях в AWS!

0 голосов
/ 30 мая 2018

Я использовал этот подход, и он работает для меня:

https://standardofnorms.wordpress.com/2017/12/03/locally-debugging-aws-lambdas-written-in-node-js/

Плохо то, что я хотел бы использовать серверный, а не лямбда-локальный пакет из-за большегосообщество без серверов.Лямбда-локальный работает как шарм, поэтому я посылаю его создателю большое объятие отсюда.

Ответы на первый вопрос по-прежнему очень приветствуются.

РЕДАКТИРОВАТЬ: Хорошо, я понял это.

Результаты показывают, что Serverless, как инфраструктура, использует файл serverless.yml, когда нам нужно добавить некоторую конфигурацию.Там мне нужно было создать функцию, которую я собираюсь запустить с помощью команды serverless, а затем указать ее в файле, где у меня есть мой обработчик.Это мой serverles.yml прямо сейчас:

service: serverless-simple

frameworkVersion: ">=1.1.0 <2.0.0"

provider:
  name: aws
  runtime: nodejs4.3

functions:
  lambdaHandler:
    handler: src/customMessageLambda.handler
    events:
      - http:
          path: ping

Конечно, мне нужно немного больше изучить этот файл, но я решил свою проблему.

Надеюсь, это когда-нибудь кому-нибудь поможет.

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