gpt4 book ai didi

node.js - 如何使用无服务器模块在本地调试 AWS Lambda Node.js?

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:21 26 4
gpt4 key购买 nike

我对 AWS 和无服务器等完全陌生。为了加快开发速度,我希望能够在本地调试我的应用程序。

关注这篇文章Running and Debugging AWS Lambda functions locally我已经尝试实现这一目标。

在 Visual Studio Code 中,当我运行调试配置时,应用程序立即退出,不会出现错误(在“content”变量的声明和初始化上设置断点)。我不确定函数名称是否正确。我试图在“index.js”中定义的主“处理程序”函数中输入:

exports.handler = (event, context, callBack) =>
{
let bIsPostRequest = false, bIsPutRequest = false, bIsGetRequest = false, bIsDelRequest = false;
let content = "";

...

这是我的“launch.json”配置文件:

{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Debugger",
"program":
"${workspaceFolder}\\node_modules\\serverless\\bin\\serverless",
"args":[
"invoke",
"local",
"-f",
"index.handler", // function name
"--data",
"{}"
],
"outFiles": [
"${workspaceFolder}\\index.js"
]
}
]
}

此外,我不能 100% 确定配置中“outfiles”的定义。我得出的结论是,这是我正在尝试调试的文件,但是如果是这种情况,“outfiles”对我来说似乎不是一个合适的名称。

我工作的本地环境是windows环境。

最佳答案

遇到this post后我设法让调试器工作。这是满足我的需求的配置:

const lambdaLocal = require('lambda-local');
var lambdaFunc = require("./index.js");

lambdaLocal.execute({
lambdaFunc: lambdaFunc,
lambdaHandler: "handler",
event: {
context: {
"resource-path": "/products",
"http-method": "GET"
},
"body-json": {
name : "ProductA"
}
}
}).then(function(done) {
console.log(done);
}).catch(function(err) {
console.log(err);
});

我将此文件保存为“debugLocal.js”在我的主工作目录中。 launch.json 文件现在如下所示:

{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Debugger",
"program": "${workspaceFolder}\\debugLocal.js"
}
]
}

到目前为止,一切似乎都复制得相当好。需要注意的一件事是包含的文件路径必须稍微更改,即 require("./js/inc/globalDefines.js"); 而不是 require("js/inc/globalDefines.js");

关于node.js - 如何使用无服务器模块在本地调试 AWS Lambda Node.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52587660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com