Anything related to the Serverless-Offline plugin for the Serverless framework.
I was able to get something to work using the library(at least for HTTP event)
https://gist.github.com/shierro/e5136e34ae8ac12f7e3e94c7c6b7b555
But I am facing some issue w/ testing using the "http lambda" endpoint
https://github.com/dherault/serverless-offline/issues/969#issuecomment-649456816
Hi! My serverless app does some request template mapping to get the raw body received from a Stripe webhook (it needs the raw body for verification by signing). The request template mapping works in "real" API gateway in my dev environment. When running locally with serverless-offline, I'm getting an undefined event being passed to my lambda function. Here's how my config looks:
sessionCompletedStripeWebhook:
handler: src/session-completed-stripe-webhook/handler.sessionCompletedStripeWebhook
events:
- http:
path: /stripe/session-completed
method: post
cors: true
integration: lambda
request:
template:
application/json: '{ "rawStripeEvent" : "$util.escapeJavaScript($input.body).replaceAll("\\''", "''")", "stripeSignature" : "$input.params(''Stripe-Signature'')" }'
Does anyone know if serverless offline supports inline request template mapping config like this? In the README, there's a section on using velocity templates. I gave that a shot but it also didn't work, but without a good example I wasn't sure if I was doing it right.
Guys how to use vscode-debugger with serverless-offline? My current configurations(launch.json) is bellow,
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Serverless Offline",
"program": "${workspaceRoot}/node_modules/serverless/bin/serverless.js",
"args": [
"offline",
"--noTimeout",
"--dontPrintOutput",
"--stage=local",
"-P",
"4000",
"--aws-profile=#PROFILENAME#"
],
"sourceMaps": true,
"runtimeArgs": ["--lazy"],
"outFiles": ["${workspaceFolder}/**/services/user/build/**/*.js"],
"protocol": "inspector",
"runtimeExecutable": "node",
"env": {
"SLS_DEBUG": "*"
},
"windows": {
"program": "${workspaceRoot}\\node_modules\\serverless\\bin\\serverless.js"
}
}
]
}
it throws following error.
Serverless Error ---------------------------------------
node_modules/serverless/lib/classes/Error.js:12
node_modules/serverless/lib/classes/Error.js:12
ServerlessError: Serverless command "offline" not found. Did you mean "config"? Run "serverless help" for a list of all available commands.
Error --------------------------------------------------
Error: Cannot find module 'serverless-offline/src/functionHelper'
Require stack:
- /Users/bregard/cartoon-play-api/source/nodejs/.serverless_plugins/plugin-local-invoke.js
- /usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/lib/classes/PluginManager.js
- /usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/lib/Serverless.js
- /usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/scripts/serverless.js
- /usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/bin/serverless.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)
at Function.Module._load (internal/modules/cjs/loader.js:840:27)
at Module.require (internal/modules/cjs/loader.js:1019:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.<anonymous> (/Users/bregard/cartoon-play-api/source/nodejs/.serverless_plugins/plugin-local-invoke.js:3:26)
at Module._compile (internal/modules/cjs/loader.js:1133:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
at Module.load (internal/modules/cjs/loader.js:977:32)
at Function.Module._load (internal/modules/cjs/loader.js:877:14)
at Module.require (internal/modules/cjs/loader.js:1019:19)
at require (internal/modules/cjs/helpers.js:77:18)
at requireServicePlugin (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/lib/classes/PluginManager.js:21:14)
at /usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/lib/classes/PluginManager.js:133:20
at Array.map (<anonymous>)
at PluginManager.resolveServicePlugins (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/lib/classes/PluginManager.js:130:8)
at PluginManager.loadAllPlugins (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/lib/classes/PluginManager.js:117:15)
at /usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/lib/Serverless.js:101:35
at tryCatcher (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:547:31)
at Promise._settlePromise (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:604:18)
at Promise._settlePromise0 (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10)
at Promise._settlePromises (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18)
at Promise._fulfill (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18)
at Promise._settlePromise (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:617:21)
at Promise._settlePromise0 (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10)
at Promise._settlePromises (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18)
at Promise._fulfill (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18)
at Promise._resolveCallback (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:466:57)
at Promise._settlePromiseFromHandler (/usr/local/Cellar/serverless/1.78.1/libexec/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:559:17)
at Promise._settlePromise (/usr/local/Cellar/server
Contributing
section of the README
private: true
on http events to make serverless-offline
to generate an print out the x-api-key anymore. Was that done on purpose and I'm just missing something or it's a regression that I can help to patch up?