debugging无服务器框架调用本地函数

我试图debuggingsls本地调用。

我的设置: 在这里输入图像描述

但是我不断收到:

/Users/nikos/.nvm/versions/node/v6.9.1/bin/node --debug-brk=63417 --expose_debug_as=v8debug /Users/nikos/.nvm/versions/node/v6.9.1/bin/serverless invoke local -f createTodo Debugger listening on [::]:63417 Process finished with exit code 130 (interrupted by signal 2: SIGINT) 

我已经得到了IntelliJ的工作,所以它也应该在Webstorm中工作。 您将需要无服务器脱机插件( https://github.com/dherault/serverless-offline

在您的运行configuration中,将您的应用程序参数更改为:

离线-s开发

并添加环境variablesSLS_DEBUG = *

无服务器 – 脱机将启动一个IntelliJ节点debugging器可以挂接到的服务器。

好吧,我已经想出了如何使用真正的Chrome开发工具与优秀的node --inspect 。 这比节点检查器好得多,因为它使用了最新的内置的铬工具。 (有关节点检查的更多信息)

node --debug-brk --inspect $(which serverless) invoke local -f myfunctionname

我跑了,但我的function还没有加载(可能是一些惰性加载在无服务器代码)。 所以我添加了一个debugger到我的函数的第一行,一切似乎都很好。

在我的情况下,我还需要一些testing数据,所以我通过这样的通过。

 node --debug-brk --inspect $(which serverless) invoke local -f postprocess -d '{"Records":[{"eventVersion":"2.0","eventSource":"aws:s3","awsRegion":"us-east-1","eventTime":"2017-06-17T05:08:29.598Z","eventName":"ObjectCreated:Put","userIdentity":{"principalId":"ALS78N87ZDYNW"},"requestParameters":{"sourceIPAddress":"52.119.114.78"},"responseElements":{"x-amz-request-id":"2EB4FAD5892EC247","x-amz-id-2":"nVLasIYsWvWm7xwONiTB6z7L8oXKkvPOb9FntOYoG/kKS+PuWwbMJ1xM7n/C1X3NJh5FUCj4aEM="},"s3":{"s3SchemaVersion":"1.0","configurationId":"3c3b2a71-b639-4116-b246-08dcacd0c7d6","bucket":{"name":"simmer-uploads-test","ownerIdentity":{"principalId":"ALS78N87ZDYNW"},"arn":"arn:aws:s3:::simmer-uploads-test"},"object":{"key":"example+%285%29.zip","size":4757597,"eTag":"9aa90579ee4e8152e6dfa60258754a83","sequencer":"005944B94AD9307261"}}}]}' 

我正在一台Mac上工作,而且我听说Windows上可能有一些$(无服务器)的问题。 但有人给它一个镜头,让我知道。

使用这个,它模拟lambda和无服务器:

https://github.com/dherault/serverless-offline#debug-process