I’ve been using serverless framework as a much more friendly entry point into understanding AWS tools (compared to the AWS docs and starting with CF). I like to learn by building something so have been working on a photo archive which I’ll use for family pics. Basically a useful project but with a high degree of flexibility and scope for safely getting things wrong.
If anyone has some time it’d be great to get feedback on what I’ve done so far. Backend here: https://github.com/mbudm/fotopia-serverless and very WIP client here: https://github.com/mbudm/fotopia-serverless-client
From what I’ve read there’s a few things I know I need to improve:
- My IAM config is a bit of a mess, I’m probably being too open for some and too restrictive for others
- I’ve cheated with dynamoDB and querying (I do the filtering in a lambda). I’m going to have to look at elastic search or similar to do better searching and viewing photos by tags. I looked at elasticSearch early but it didn’t seem that configurable via sls or cloudformation and I really wanted to try and do a complete infra as code project.
- I’ve got the e2e infra in one serverless.yml and definitely think this needs to split primarily because the cloud front setup takes so long. Although I’m working with one more or less permanent prod and one dev env so subsequent sls deploys are ok timewise.
- I’m using AWS amplify in my functional tests which is a bit ugly as it’s intended to be a nodejs library. I tried a few sig4 npm modules to do cleaner authenticated API calls but nothing really worked
Serverless Framework has been a great way to learn - but the more I pick up the more I realise there is to know. My next task is to write up what I’ve done as I learnt heaps from other practical examples of real apps so time for me to pay it forward.