hands-on lab

Process Amazon S3 Events with AWS Lambda

Get guided in a real environmentPractice with a step-by-step scenario in a real, provisioned environment.
Learn and validateUse validations to check your solutions every step of the way.
See resultsTrack your knowledge and monitor your progress.
Lab description

Amazon Simple Storage Service (S3) lets you store, retrieve, update, and version objects in the Cloud. Not only does it guarantee durability and high availability at low cost, but it also enables event-driven systems by notifying you whenever objects are created, updated, or deleted. This lets you connect S3 to SQS queues, SNS notifications, or AWS Lambda for custom processing.

In this lab, we will learn how to process new image files uploaded into S3 with a Lambda Function. As a simple example, we will use Python to compress the input image and generate a gzipped version.

Learning Objectives

Upon completion of this lab you will be able to:

  • Use Lambda to respond to events in Amazon S3
  • Utilize Python Lambda functions for event processing including use of the boto3 library
  • Compress data to reduce costs

Intended Audience

  • Developers working with event-driven paradigms
  • Practitioners looking to automate processing of S3 files


Experience with S3 and the Lambda command-line will be beneficial but is not required.

The following courses can be used to fulfill the prerequisites:


June 5th, 2021 - Updated Amazon S3 screenshots to reflect the latest user interface changes

March 9th, 2021 - Updated AWS Lambda lab steps to reflect latest user interface updates

January 22nd, 2021 - Updated AWS Lambda lab steps to reflect latest user interface updates

October 27th, 2020 - Updated instructions and screenshots for the lambda creation to reflect the updated UI

July 29th, 2020 - Updated lab to reflect the latest console experience and resolved an issue in the Python code causing the function to fail to zip processed images

January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab

September 10, 2018 - Updated instructions and images to improve the lab experience

About the author
Alex Casalboni
Sr. Software Engineer

Alex is an Italian Software Engineer with a great passion for web technologies and music.

He spent the last 5 years building web products and deepening his knowledge on full-stack web development and software design, with a main focus on frontend and UX.

Despite being a passionate coder, Alex worked hard on his software and sound engineering background, which provides him the tools to deal with multimedia, signal processing, machine learning, AI, and many interesting topics related to math and data science.

Indeed, he had the opportunity to study and live in a very young and motivating environment in Bologna and Milan, two of the biggest and oldest Italian Universities. These experiences lead him to work on several projects involving robotics, machine intelligence, music semantic analysis and modern web development.

Covered topics
Lab steps
Logging In to the Amazon Web Services Console
Amazon S3 Events Overview
Creating an Amazon S3 Bucket
Implementing an AWS Lambda Function to Process Amazon S3 Events
Testing the Amazon S3 Trigger