AWS Lambda#
Resources#
- https://en.wikipedia.org/wiki/AWS_Lambda
- Getting Started with AWS Lambda
- the SLA
, you get credits if they don't meet the SLA
- AWS Lambda limits
- Building Lambda functions in Go
- AWS Lambda Function Handler in Go
- AWS Lambda Context Object in Go
- Lambda environment variables
You pay for the execution time of your function, rounded to 100 ms.
As event source you can have (just a few examples) S3 buckets, SES, SNS, DynamoDB and API Gateway or ALB (web requests), complete list here
, both synchronous and asynchronous.
Your function runs in one of the available runtimes
((versions of) languages)
The code you write does not have to be reentrant, "If the function is invoked again while a request is still being processed, another instance is provisioned, increasing the function's concurrency."
You can specify a timeout during creation of your function.
If you invoke your Lambda function via an ALB, you need an ALB per function, you could end up with a lot of ALB's, which is quite a lot of management?
To create a Lambda function you first create a Lambda function deployment package, a .zip file consisting of your code (a Go executable) and any dependencies:
GOOS=linux go build main.go zip function.zip main
Questions / things to find out#
- configuration, how to configure your app?
- logging, where does the output of the app go?
- (blue/green) deployment
- security / context, what options are there?
- throttling options?
- monitoring (throughput and response times)
- integration with other functions and (AWS) services
- application session state options?
- What are layers?
