在AWS Lambda和AWS Cloudwatch中使用Typescript源映射
我正在使用AWS Lambdas和由ESBuild构建的Typescript ESBuild将所有必要的代码聚合到一个index.js构建文件中,这使得冷启动非常快,并确保不会发送不必要的代码。 它还可以生成源地图 您知道如何让Cloudwatch了解sourcemaps,以便获得与实际源代码而不是构建相关的stacktraces吗?我找到了答案:NodeJS支持sourcemaps,Lambda支持节点选项 在Typescript上生成sourcemaps,只需将此环境变量添加到lambda:在AWS Lambda和AWS Cloudwatch中使用Typescript源映射,typescript,aws-lambda,amazon-cloudwatch,Typescript,Aws Lambda,Amazon Cloudwatch,我正在使用AWS Lambdas和由ESBuild构建的Typescript ESBuild将所有必要的代码聚合到一个index.js构建文件中,这使得冷启动非常快,并确保不会发送不必要的代码。 它还可以生成源地图 您知道如何让Cloudwatch了解sourcemaps,以便获得与实际源代码而不是构建相关的stacktraces吗?我找到了答案:NodeJS支持sourcemaps,Lambda支持节点选项 在Typescript上生成sourcemaps,只需将此环境变量添加到lambda:
NODE_OPTIONS=--enable-source-maps
现在,当stacktrace被记录时,它指向原始文件和行
{
"errorType": "Error",
"errorMessage": "Missing process.env.TABLE_EVENT",
"trace": [
"Error: Missing process.env.TABLE_EVENT",
" at /var/task/index.js:12496:11",
" -> /backend/service/userService/lib/dynamodb.js:6:9",
" at /var/task/index.js:4:5",
" at /var/task/index.js:16979:18",
" -> /backend/service/userService/lib/handlers/publishReminders.js:4:26",
" at /var/task/index.js:4:5",
" at /var/task/index.js:17121:33",
" -> /backend/service/userService/lib/handlers/index.js:1:43",
" at /var/task/index.js:4:5",
" at Object.<anonymous> (/var/task/index.js:17136:16)",
" -> /backend/service/userService/lib/index.js:16:26",
" at Module._compile (internal/modules/cjs/loader.js:999:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)",
" at Module.load (internal/modules/cjs/loader.js:863:32)"
]
}
{
“errorType”:“Error”,
“errorMessage”:“缺少process.env.TABLE_事件”,
“跟踪”:[
“错误:缺少process.env.TABLE_事件”,
“at/var/task/index.js:12496:11”,
“->/backend/service/userService/lib/dynamodb.js:6:9”,
“at/var/task/index.js:4:5”,
“at/var/task/index.js:16979:18”,
“->/backend/service/userService/lib/handlers/publishrementers.js:4:26”,
“at/var/task/index.js:4:5”,
“at/var/task/index.js:17121:33”,
“->/backend/service/userService/lib/handlers/index.js:1:43”,
“at/var/task/index.js:4:5”,
“at对象。(/var/task/index.js:17136:16)”,
“->/backend/service/userService/lib/index.js:16:26”,
“at模块编译(内部/modules/cjs/loader.js:999:30)”,
“at Object.Module._extensions..js(internal/modules/cjs/loader.js:1027:10)”,
“at Module.load(内部/modules/cjs/loader.js:863:32)”
]
}