Are you running this on Windows?
I get this error
$ serverless invoke local --function create --path mocks/create-event.json
Serverless: Bundling with Webpack...
ERROR in /home/peter/notes-serverless-app/notes-app-api/create.js
Module build failed (from ../node_modules/babel-loader/lib/index.js):
Error: Plugin/Preset files are not allowed to export objects, only functions. In /home/peter/notes-
serverless-app/notes-app-api/node_modules/babel-preset-stage-3/lib/index.js
...
Unhandled rejection Error: Webpack compilation error, see above
I am getting the same result, the command line just return nothing. I have the version information like this. Besides, I cannot find the aws folder with config file and credential file in it. I do exactly the same as the tutorial.
This is my project directory along with my serverless.yml. Iāve changed the region to the right one with my dynamo so that shouldnāt be a problem.
Never mind, I solve the problems. My mocks, libs and create.js are in wrong folder. However I do notice that in create.js, itemās fields are not exactly like the ones in tutorial. It should be āuseridā and ānoteidā instead of āuserIdā and ānoteIdā
Otherwise you will get a validation exception!
Hmm that looks like an older version of the tutorial? Some of the babel presets in that error are pretty old.
Hmm those depend on what was set while creating the table. We use camel case throughout the tutorial.
I was wondering why do we use PUT
in order to create entry in Dynamo
. Why did not we use POST
? Do they differ ?
As far as I know, generally, we use POST
for creating new entries, and for the PUT
to update the existing entries.
If you are referring to HTTP POST vs PUT that doesnāt apply to DynamoDB. We use the put
method in the DynamoDB Client SDK - https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#put-property.
Hi, using windows. No idea what iāve done wrong, iāve just copied and pasted for the most part, can you please assist:
PS D:\Shadow\Desktop\notes-app-api> serverless invoke local --function create --path mocks/create-event.json
Syntax Error -------------------------------------------
D:\Shadow\Desktop\notes-app-api\node_modules\serverless-offline\src\ServerlessOffline.js:157
);
^
SyntaxError: Unexpected token )
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (D:\Shadow\Desktop\notes-app-api\node_modules\serverless-offline\src\index.js:3:18)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at plugins.forEach.error (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\lib\classes\PluginManager.js:107:18)
at Array.forEach (native)
at PluginManager.loadPlugins (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\lib\classes\PluginManager.js:102:13)
at PluginManager.loadServicePlugins (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\lib\classes\PluginManager.js:147:10)
at PluginManager.loadAllPlugins (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\lib\classes\PluginManager.js:97:10)
at pluginManager.loadConfigFile.then.then (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\lib\Serverless.js:78:35)
at tryCatcher (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:517:31)
at Promise._settlePromise (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:574:18)
at Promise._settlePromise0 (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:619:10)
at Promise._settlePromises (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:699:18)
at Promise._fulfill (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:643:18)
at Promise._resolveCallback (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:437:57)
at Promise._settlePromiseFromHandler (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:529:17)
at Promise._settlePromise (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:574:18)
at Promise._settlePromise0 (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:619:10)
at Promise._settlePromises (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:699:18)
at Promise._fulfill (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:643:18)
at PromiseArray._resolve (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise_array.js:126:19)
at PromiseArray._promiseFulfilled (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise_array.js:144:14)
at Promise._settlePromise (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:579:26)
at Promise._settlePromise0 (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:619:10)
at Promise._settlePromises (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:699:18)
at Promise._fulfill (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:643:18)
at Promise._resolveCallback (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:437:57)
at Promise._settlePromiseFromHandler (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:529:17)
at Promise._settlePromise (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:574:18)
at Promise._settlePromise0 (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:619:10)
at Promise._settlePromises (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:699:18)
at Promise._fulfill (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:643:18)
at PropertiesPromiseArray.PromiseArray._resolve (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise_array.js:126:19)
at PropertiesPromiseArray._promiseFulfilled (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\props.js:78:14)
at Promise._settlePromise (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:579:26)
at Promise._settlePromise0 (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:619:10)
at Promise._settlePromises (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:699:18)
at Promise._fulfill (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:643:18)
at Promise._resolveCallback (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:437:57)
at Promise._settlePromiseFromHandler (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:529:17)
at Promise._settlePromise (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:574:18)
at Promise._settlePromise0 (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:619:10)
at Promise._settlePromises (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\promise.js:695:18)
at _drainQueueStep (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\async.js:138:12)
at _drainQueue (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\async.js:131:9)
at Async._drainQueues (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\async.js:147:5)
at Immediate.Async.drainQueues (C:\Users\Shadow\AppData\Roaming\npm\node_modules\serverless\node_modules\bluebird\js\release\async.js:17:14)
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Get Support --------------------------------------------
Docs: docs(dot)serverless(dot)com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
Operating System: win32
Node Version: 6.11.2
Framework Version: 1.52.0
Plugin Version: 2.0.0
SDK Version: 2.1.1
Seems my node version was simply too old, updated and now fixed. Maybe a warning of the minimum node could be checked too?
So it is working now after you updated your Node version?
When a give the command
serverless invoke local --function create --path mocks/create-event.json
nothing happens
To debug this try:
$ SLS_DEBUG=true serverless invoke local --function create --path mocks/create-event.json
I followed the tutorial pretty easily until I got to getting a response
message: 'One or more parameter values were invalid: Missing the key userid in the item',
code: 'ValidationException',
time: 2019-10-29T17:17:03.743Z,
requestId: 'B53FTSNP519K6KN7NPLADF4SNRVV4KQNSO5AEMVJF66Q9ASUAAJG',
Copied the codes exactly, Iām in the us-east-1 region, all my AWS credentials are set up correctly.
Is the create-event.json wrong? Arenāt you supposed to specify userid when writing to the table? Am I literally supposed to use USER-SUB-1234 as the cognito ID or an actual ID from my Cognito pool?
Just a heads up we use userId
instead of userid
in the tutorial. So make sure you are using the right one.
I have a problem with serverless invoke local --function create --path mocks/create-event.json
as well.
I get the output:
Serverless: DOTENV: Could not find .env file.
Serverless Error ---------------------------------------
Function "create" doesn't exist in this Service
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
Operating System: win32
Node Version: 12.13.0
Framework Version: 1.56.1
Plugin Version: 3.2.1
SDK Version: 2.2.0
Components Core Version: 1.1.2
Components CLI Version: 1.4.0
I was also getting
Serverless Error ---------------------------------------
Function "create" doesn't exist in this Service
Am running in Windows. I got past this error by removing the comments from functions part of the serverless.yml
file.
functions:
create:
handler: create.main
events:
- http:
path: notes
method: post
cors: true
authorizer: aws_iam
Now onto troubleshooting the next issue! status code 500
(rofl)
Yeah, usually these errors are caused by indenting issues in the serverless.yml
.
Make sure you are in the right directory when running the command. Happened to me, then realized I was running it from the libs directory. You have to run it from the root directory based on your --path parameter. I know this is a late reply, but in case this happens to any one else. It will run the command, and then just go to a new line in the command prompt/terminal with no error if you are not running the command at the right directory level.
Hi all what have I done wrong that Iām getting eslint
strict errors? Thereās a time and place for these nitpicks but not while Iām exploring and theyāre holding me up. Any guidance as to what I did wrong / how to fix it would be most appreciated
/Users/julian/learn/serverless-stack/notes-app-api/create.js
3:8 error A space is required after '{' object-curly-spacing
3:25 error A space is required before '}' object-curly-spacing
4:1 error More than 1 blank line not allowed no-multiple-empty-lines
19:28 error Strings must use singlequote quotes
20:5 error Expected space(s) after "return" keyword-spacing
21:5 error Expected space(s) after "catch" keyword-spacing
24:1 error Trailing spaces not allowed no-trailing-spaces
25:1 error Block must not be padded by blank lines padded-blocks
ā 8 problems (8 errors, 0 warnings)
I tried to soften the rules in an eslintConfig section inside package.json
but it doesnāt seem to be respecting it:
"eslintConfig": {
"extends": "eslint-config-serverless",
"rules": {
"whatever": "blah",
"semi": "warn",
"space-before-function-paren": "warn",
"no-trailing-spaces": "warn"
}
As an interim to this I looked at the configuration for serverless-bundle
and that helped ā I disabled eslint for now by adding this into serverless.yml
custom:
# for serverless-bundle -- webpack wrapper
bundle:
sourcemaps: true # Enable source maps
caching: false # While in development don't cache
stats: false # Don't print out any Webpack output
linting: false # Disable linting as a part of the build process