When a project scaffolded with Serverless framework starts to be large or so you simply want to structure in a specific way your project, your handler
paths can be quite long to write. That's where serverless-functions-base-path
comes in, this plugin will allow you to define a base path that indicates the location of your lambda function while keeping your handler
paths as minimal as possible.
Go to your project directory and install the plugin by running :
for npm users
npm i -D serverless-functions-base-path
for yarn users
yarn add --dev serverless-functions-base-path
Let's say that our project have the following strucutre :
my-new-serverless-project
├── src
│ └── handlers
│ └── users.js
│ └── lib
├── package.json
└── serverless.yml
Open your serverless.yml
configuration file and :
plugins
sectionserverless-functions-base-path
plugin into itcustom
sectionfunctionsBasePath
property with your base path location# serverless.yml
service: hello-world-service
provider:
name: aws
runtime: nodejs12.x
stage: dev
region: eu-west-1
memorySize: 128
timemout: 10
custom:
functionsBasePath: src/handlers
functions:
hello:
handler: users.hello
events:
- http:
path: hello
method: get
plugins:
- serverless-functions-base-path
Try to invoke your local function with
serverless invoke locale -f hello
# output
{
"statusCode": 200,
"body": "{\"message\":\"Hello world!\"}"
}
You can find more usage examples in the example folder.
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature
MIT