Code Repository: https://github.com/idelfonsog2/aws-s3-lambda-hanlder
With this project, I can show you a Lambda function that gets triggered & processes events by the `s3:ObjectCreated:*`.
We are basically decomposing our monolith application into different container images. For further development with a serverless application, there are different components (manage services) that might tight you to a specific cloud provider; other ones will be able to migrate easily.
Along with it, you will find the CI/CD (staging.yml), built with GitHub Actions and the Serverless Framework (https://www.serverless.com)
The Lambda itself was wrapped in a Docker container image, and you could also use the following in case of a zip package:
handler: xyz
package:
artifact: ./path/*.zip
Zips can only hold 256 MB, while the docker image can be up to 10 GB. Lambda layers are not usable by container images. For example, I'm using a layer to decompress private key files, reuse initialization code, etc.
To accomplish this, I have created the following resources with a YML template for the AWS CloudFormation Stack to consume

For more details on the output, look at the README sections: https://github.com/idelfonsog2/aws-s3-lambda-hanlder/blob/main/README.md