Skip to main content

S3 Event Notifications Using Lambda

I earned my AWS Solutions Architect Certification in Feb 2026 (🎊) but Like Smash Mouth said, "So much to do...so much to see." 

I've used Lambdas that, when an object was uploaded to a bucket, sent a notification to Eventbridge, and then sent me a text and email via SNS. Now, thanks to the free project on Adrian Cantrill's GitHub, I'm going to make a small image processing eventflow.

(Emoji use is for fun; Everything here written by a human being.) 

What's Happening:

Images uploaded to an S3 bucket are made into 5 thumbnail variations thanks to the power of Lambdas and inserted into an output bucket.  

Business Use case;

If you want to get quick thumbnails.  Maybe this can be scaled out to do file conversion, like .txt to .pdf. 

Materials:

2 S3 buckets - one for input, one for processed output.

Lambda

An image! 

Step 1: Bucket Creation ðŸª£

I made one bucket (runtcpip-source, for images to go in) and copied the settings from it to make the second bucket (runtcpip-processed, for images to go out). 

Public Access is blocked, and it is managed with Server-side encryption. I could have likely made them with Cloud Formation or Terraform but with such a simple setup, way quicker to use the GUI today.

Step 2: Making the Lambda Role ðŸ”—

This policy gives Lambda the permission to control runtcpip-source and runtcpip-processed with read, write, delete, and modify permissions but now we have to put it on the Lambda.

Step 3 - Making the Lambda 

 I select the latest Python runtime available. This is a mistake. There is a code to upload to do the pixellation. With the code installed, this lambda now has the knowledge to work its magic on our uploaded images.

Step 4 - Configuring the Trigger for the Lambda

 Make sure the correct bucket name is set to not incur costs of an eternally - running Lambda. Sure you have  a lot of free ones, but don't take that chance.

I realize I misnamed my bucket and changed the code in the IAM role. I skimmed the instructions again to check if I needed to do so elsewhere, and no.

With this step, I attach the source and output buckets to the lambda so when action happens in the bucket, the lambda is triggered.And I check again to avoid Recursive Invocation (Lambda doesn't stop)

Step 5 - Run the event.

It doesn't work, and Amazon Q says it's because of Runtime incompatibility. The versions of Python are different (the instructions say 3.9). So I return to Step 3 and remake the function. The earliest version is 3.10. This still does not work.

10 minutes after cleaning up, I realize I could have poked in the code provided to change the runtime, but that shouldn't make a difference, right? 

 

I'm sharing this -- What do you think? Have you been able to replicate this? 

 

 

Comments

Popular posts from this blog

Making KPI Dashboards with PowerBI

 While this is the free tier, I cannot share or collaborate with others, nor can I publish content to other people's workspaces, but they will not stop me from screenshooting and recording these self-taught adventures,so! I'm doing this because I idly searched "Mattel careers" and "Information Technology", and seeing a bulletpoint saying the following: Analytical and reporting skills such as creating dashboards and establishing KPIs such as experience with PowerBI, Cognos, Tableau, and Google Data Lake/AWS is preferred And thought "Well, I've used Tableau, and I've heard about PowerBI,  even if its in-demandness is questionable , so how similar is it? And can I write about it?"  First, PowerBI (PIB) does have a downloadable, local version, but apparently Windows-only. I could download the .exe but I couldn't run it / drag it to applications on my MacBook.  Not a problem, we'll use the online SaaS version, and a dataset found here, ...

A 2-week Trial of T-Mobile Home Internet

     The Xfinity app showed usage of the past 3 months: We used less than 40% each month, for about $80 USD a month.   No thanks! That cuts into the movie budget! Before we save some money (about $15/mo), let's test how T-Mobile Internet unlimited data works for 2 weeks.    There are 15 devices for this test; Smart TVs: 4 Laptops: 4 Printer: 1 Smart Home Speakers: 3 Game Consoles: 1 Phones: 1 (There are other phones in the home but they stick with data) Other: 1 Total : 15  I made tables for 3 entries a day across 3 days to test the Xfinity service we have. Here's one;   Xfinity is pretty speedy - Download times are between 227 - 236 Mbps, Latency between 24.5 - 25.5, Jitter between 5 - 6.68, and 0 packet loss.  Let's quickly define the terms in the table;    Date/Time - The date and time of the data gathered. Download (Mpbs) - How fast your network gets data. Upload (Mbps) - How fast your network uploads data. Latency ...

Recon and SSID - Mapping With VisiWave Site Survey

My laptop is refurbished. I've written about how there are a few ... quirks. Being a technology professional, I felt okay with adopting an older machine, knowing I had the skill to fix moderate issues. From dying drivers to monitor massacres, I've ID'd, solved, and documented a lot of issues.  The newest one was my Wi-Fi adapter dropping the connection to a specific extender. While troubleshooting, I was curious about doing recon of WiFi networks and broadcasting devices anyway. That issue? A power setting. It was so determined to save power, it would disconnect. The extender is also flirting with the older end of 6 years old.  The battery needs to be replaced, but that's new to me. As a Windows laptop, there are a plethora of options to pick. How do you decide which one is safest?  I am suddenly concerned about this despite having 3 unofficial, 15$ Macbook Air chargers from eBay, and no explosions. But let's move onto the Site Survey - Where can I find the stronges...