If you're anything like me, you've probably seen those buzzwords floating around: "serverless," "Lambda functions," "event-driven computing." It sounds futuristic - like programming without writing code, or spinning up logic that just exists in the cloud.
So naturally, I wanted in.
A few days ago, I set out to make my first AWS Lambda function. I wasn't trying to build anything crazy. I just wanted to see if I could wire something together and watch it work. Spoiler: I did. My Lambda didn't do much, but I saw it work - and that made all the difference.
Here's how it went.


The Plan: Trigger a Lambda From an S3 Upload
I came up with the most basic idea possible:

Upload a file to S3 → have that action trigger a Lambda function

I wasn't worried about the function doing anything useful. I just wanted to see the gears turn: trigger → function → log.
You could say it was a science experiment. The goal wasn't utility. It was proof.🤯


Step 1: Creating the Lambda Function (AKA Blank Canvas Mode)
I opened the AWS Lambda console and clicked "Create Function." I chose the "Author from scratch" option because I like pain, apparently.
Name: demoLambda
Runtime: Python 3.12 (I don't even know Python that well, but it looked friendly)
Permissions: I let AWS create a new role with basic Lambda permissions. Default everything

Inside the function editor, AWS gave me a basic "Hello from Lambda" handler. I could've edited it, but I decided: Nope, let's leave it untouched. I wasn't here to code. I was here to observe.

Image description


Step 2: Setting Up the S3 Bucket (My Cloud Storage Playground)
Next, I created a new S3 bucket:
Name: demobucket357 (because AWS hates duplicate names)
Region: Same as the Lambda function, which matters more than I expected

I left all other settings default. Again, this wasn't about security best practices or storage classes. I just wanted something I could drop files into.


Step 3: Connecting the Trigger (Where Things Got Real)
Back in my Lambda function settings, I added a trigger:
Trigger type: S3
Bucket: My newly created bucket
Event type: PUT (aka when an object is uploaded)

I also checked the box that acknowledged AWS might need to grant permissions for this to work. Clicked save. No errors. So far, so good.

Image description


Step 4: Uploading a File (And Waiting for Magic)
With everything wired up, I uploaded a random .txt file into my S3 bucket. No fancy automation. Just a manual upload from my desktop.
Then I opened CloudWatch Logs like I was checking a mailbox for a letter from a pen pal.
Boom. There it was.
A new log stream had appeared. Inside it? A sweet, sweet log that said something like:

START RequestId: ...
Hello from Lambda
END RequestId: ...
REPORT RequestId: ...

I didn't write any custom code. I didn't even print anything. But that log was enough to tell me: it worked.
I had created a real-life serverless event. I had connected cloud services and watched one respond to the other. It was kind of beautiful.


What I Learned (Besides Patience)

  • 1. - Triggers are powerful. Even without doing anything inside Lambda, you can still observe and verify behavior through logs.
  • 2. - Permissions matter. AWS handles a lot, but I started reading more about IAM roles and policies afterward - just so I don't blindly click checkboxes forever.
  • 3. - CloudWatch is your friend. Seeing logs appear felt like watching a heartbeat monitor for your cloud app.
  • 4. - You don't need to do much to learn a lot. The actual function was a placeholder. The real learning came from connecting the dots.

Final Thoughts
This wasn't a groundbreaking project. I didn't save data, transform files, or build an API. But I started. I connected services. I watched logs come in. I got curious about what I could do next.
That's the thing about learning cloud: you don't always have to aim for big, shiny results. Sometimes it's about getting your hands dirty and proving that, yes, you can make the cloud respond to you.
And honestly? That's more addictive than it should be.


Thanks for reading. If you're tinkering with Lambda or S3, I'd love to hear what you're building - or breaking. Either way, you're learning.