This is my first tech-related post ever, and probably my first social-media-esque post in over 2 years!
Some thoughts about Day 2 of the 30 Day DevOps Challenge I signed up for. (I haven't fully digested Day 1 yet, but will come around to that)
Day 2 -> Finally getting emails from the NBA
Code and Architecture provided by: YouTube Video
The goal of this project was to familiarize myself with AWS tooling and working with external APIs. I utilized the SportsData.io API for NBA game information for the day. The only prerequisite for using this API is signing up for an account.
AWS Resources Used:
- AWS Lambda: Handles the logic for querying the API and transforming the data into a human-readable format.
- AWS SNS: Sends the data to a specified email address.
- AWS EventBridge: Schedules the Lambda function invocation at set times.
Terraform Experience
To challenge myself, I decided to deploy all the AWS resources using Terraform. While I use Terraform regularly at work, I had never set it up on my personal device, so bootstrapping it was an interesting experience.
Highlights of getting Terraform set up:
- Terraform Version 1.10.0: I opted for this version because it supports native state-locking in S3 buckets, which was a key feature I wanted to try out (I still use version 0.13 at work).
-
Installing Terraform: When I ran
brew install terraform
, it only installed version 1.5, which didn’t meet my needs. To resolve this, I installed tfenv, a tool that helps manage multiple Terraform versions. After installingtfenv
, I rantfenv install 1.10.0
andtfenv use 1.10.0
and was good to go.
Key Focus Areas for the Terraform Module
When converting the project from individual resources to a Terraform module, I focused on:
- Clear and relevant resource naming (I’m not great at naming things)
- Ensuring sensitive data was not committed to code
- Making the module generic and reusable for others, with clear instructions on how to use it.
Last Thoughts
It's been great to use my personal device for a change. I've definitely taken for granted how well set-up my work environment is, so achieving some form of parity is a main focus during the beginning days of this challenge.
When time permits, I’d like to further explore the NBA data, possibly injecting it into Splunk to create visualizations.(And try not to incur any significant AWS fees in the process). It'd also be nice to try refactoring the logic into Golang to get more experience using in a different programming language in a practical-ish way.
Excited for whats in store for Day 3!
Top comments (0)