Implementation notes from beta evaluation
These are the detailed notes made during my implementation of this project during beta testing in April/May 2024.
Project Description
URL: https://liveproject.manning.com/project/1312
LiveProject Beta: Event-Driven Applications
Here's the full project description:
- Build Serverless Apps on AWS
- Project Duration: 4 weeks
- Weekly Commitment: 6-8 hours
- Level: Beginner
Beyond the easy excitement, creating serverless applications that work is not a trivial job. We need good knowledge of operations and software architectures to make our applications truly production-ready. If you are confused and don't know where to start, then this liveProject series is for you!
We will discover together how to apply Infrastructure as Code (IaC) concepts to keep our application's resources under control and avoid stepping on our colleagues' toes. We will then go further, completely automating the software release process using deployment pipelines to avoid the possibility of accidental errors.
But it doesn't end there! In fact, in the world of serverless applications, operations and development live together. Therefore, we will start to see how to exploit the advantages of object-oriented programming in our functions, thanks to TypeScript. Finally, we will learn to make the most of the event-driven nature of serverless applications with Amazon EventBridge. The series comprises the following 4 projects:
- Infrastructure as Code
- CI/CD Pipelines
- Build and Deploy TypeScript Applications
- Event-Driven Applications
Looks like I was picked to work on only that last one.
Prerequisites
These were not all met and account for some of the long setup time.
Prerequisites This liveProject is for software developers or cloud engineer who wants to implement asynchronous serverless applications using events. Some basic prerequisites are needed to fully enjoy the project
- An Amazon Web Services account (basic) - learners need to have their own AWS accounts and be proficient at using it; AWS serverless ecosystem (basic) - a good knowledge of serverless paradigm and how it applies on AWS is needed as this is an advanced liveProject (see recommended resources);
- Typescript/JavaScript - learners should be familiar with programming in JavaScript and TypeScript, especially basic syntax, functions, classes, and exception handling;
- IaC using SAM - learners should know the importance of Infrastructure as Code and how to implement using Serverless Application Model;
- Event-driven application - a basic knowledge of how this type of systems works may be beneficial;
Suggestion: recommendations for meeting these prerequisites (e.g. AWS Hello World with SAM, something equivalent for Typescript)
Suggestion: check script for basic AWS and/or SAM functionality. See AWS Check Script
Setup: 10.25 hours
See Setup Notes for the first attempt, which failed due to an ill-fated choice on using a simplified AWS IAM config.
See 010 Setup Notes II for a brief attempt at undoing the above in the same AWS account, which did not seem possible. It may be possible, but I couldn't find a way within a reasonable amount of time so I abandoned that AWS account entirely and made a new one.
See 020 Setup Notes III for the whole process which worked, starting from initial AWS account creation through walking through the AWS SAM "hello world" project.
DONE: Put the setup docs somewhere public since they are not specific to the liveProject content.