This Tool aimes at providing auto deployment options for Lambda from multiple sources.
The main I problem I thought around is to deploy the lambda based on dotnet. The Lambda deployment for node and python can be pretty simpler, given there is a inline editor, for dotnet, "especially" while in development it could be pretty challanging to deploy each time while the code is changing. The CI pipeline do works, but i just wanted to have a cleaner deploy flow rather then using third party actions. In corporate environments this can even be more challanging given what actions from market place can be trusted. 1 Caveat still pending. Read below.
The solution is pretty simple. Initially I thought on just deploying the basic Lambda S3 from the, I had a pretty good thoughts on how this can further be extended as defined in roadmap below.
I shall try to add more features as needed and as I get time. Environment Support is handled using Github Workflow parameters
PRs / enhancements and ideas are WELCOME. Please use the issues tab to communicate.
Following is the roadmap for the current option
- Auto Deploy from S3. Completed. See below ✔️
- Auto Deploy from SNS (TODO) ⏳
- Support Lambdas for Listing versions (TODO) ⏳
- Management portal to deploy as needed (TODO) ⏳
- Remove dependency from external S3 Deployment action ⏳
The basic design is pretty simple and self explanatory. Refer to the image below:
- Run the workflow pipeline after commit. If you to run every time, use main as target, otherwise, use manual workflow.
- Workflow parameters can be used in input to control which environments to deploy.
- Make sure you have the correct S3 IAM and lambda policies defined. For reference the same can be found as described below:
- S3 Publish access permission for Github. ref policy
- Lambda Publish policy. ref policy
- Update and Upload the Manifest file to root: Manifest file defines which lambda to deploy from which path. sample manifest file
- Policies might need further narrow down. I have kept it little relaxing considering future work planned on same theme.
- you are all done.
Most things are straightforward, in case you need any support, feel free to drop in the issues.