AWS Lambda Events
Simply put, events are the things that trigger your functions to run.
If you are using AWS as your provider, all events
in the service are anything in AWS that can trigger an AWS Lambda function, like an S3 bucket upload, an SNS topic, and HTTP endpoints created via API Gateway.
View the AWS events section for a list of supported events
Upon deployment, the framework will deploy any infrastructure required for an event (e.g., an API Gateway endpoint) and configure your function
to listen to it.
Infrastructure which is created to support events in the events
list may be
referenced using CloudFormation intrinsic functions like Fn::GetAtt
or
Fn::Ref
(or their shorthand counterparts). For details on referencing created
resources in AWS, see the AWS CloudFormation Resource
Reference section on the
AWS - Resources page.
Configuration
Events belong to each Function and can be found in the events
property in serverless.yml
.
# 'functions' in serverless.yml
functions:
createUser: # Function name
handler: handler.createUser # Reference to file handler.js & exported function 'createUser'
events: # All events associated with this function
- httpApi: 'POST /users/create'
Events are objects, which can contain event-specific information.
The events
property is an array, because it's possible for functions to be triggered by multiple events, as shown.
You can set multiple Events per Function, as long as that is supported by AWS.
# 'functions' in serverless.yml
functions:
createUser: # Function name
handler: handler.users # Reference to file handler.js & exported function 'users'
events: # All events associated with this function
- httpApi: 'POST /users/create'
- httpApi: 'PUT /users/update'
- httpApi: 'DELETE /users/delete'
Types
The Serverless Framework supports all of the AWS Lambda events and more. Instead of listing them here, we've put them in a separate section, since they have a lot of configurations and functionality. Check out the events section for more information.
PathParameters
HTTP events can be configured to pass in path parameters to your lambda function. See the API Gateway event for more details.
# 'functions' in serverless.yml
functions:
createUser: # Function name
handler: handler.users # Reference to file handler.js & exported function 'users'
events: # All events associated with this function
- httpApi: 'GET /users/{id}'
Deploying
To deploy or update your Functions, Events and Infrastructure, run serverless deploy
.