This is the accompanying repository for my article about benchmarking various Lambda functions.
You'll need to first build all of the lambdas. For this, you'll need:
- Stable Rust
- cargo-lambda
- GraalVM
- OpenJDK v21
- Go
- Docker (or alternatives like Podman)
- Python 3.12
- uv (Python package manager)
- Node.js
- pnpm (Node.js alternative package manager) - optional but recommended
- OpenSSL
You'll need to generate a RSA key pair. You can do it with OpenSSL:
openssl genrsa -out private.pem 2048
- this will generate the private keyopenssl rsa -in private.pem -pubout -out public.pem
- generate public key
You can build everything in one go by running make
, or you can pick your desired target(s). See Makefile
for targets list.
In order to deploy to the cloud, you'll need Terraform. cd
into the infra directory, and run terraform apply
.
Due to a bug in the AWS provider, you might need to do this more than once.
Once everything is deployed, you can use the util to generate test data and upload it to the required buckets. The results should be available in CloudWatch.
After everything is done, make sure you destroy the provisioned resources by running terraform destroy
inside the infra directory.