hands-on lab

Process Amazon SNS Notifications with AWS Lambda

Up to 1h 30m
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.


Amazon Simple Notification Service (SNS) is a fully-managed, highly-scalable service that facilitates message delivery using a publish/subscribe model. You can use Amazon Simple Notification Service (SNS) to send messages to email recipients, webhooks, or mobile devices via SMS or push notifications.

With Amazon SNS, you can deliver an unlimited number of notifications without worrying about scaling up. You can use AWS Lambda to customize how messages are processed and integrate messaging with your other AWS resources or 3rd-party services.

In this Lab, you will learn how to process SNS notifications with a Lambda Function. As a simple example, you will use Python to upload a file to AWS Simple Object Storage (S3) in response to a message you publish to SNS.

Learning Objectives

At the end of this lab, you will be able to:

  • Create an SNS topic
  • Create a Lambda function
  • Configure SNS to trigger your Lambda function
  • Publish a message in SNS
  • Verify that Lambda processed your SNS message

Intended Audience

This Lab is intended for:

  • Developers
  • CloudEngineers


This is a beginner-level Lab, you should have a conceptual understanding of:

  • The publish/subscribe messaging model
  • Serverless functions

Familiarity with the following AWS services will be helpful but is not required:

  • Simple Notification Service (SNS)
  • Lambda
  • Simple Storage Service (S3)


March 9th, 2021 - Updated AWS Lambda instructions and screenshots to reflect the latest user-interface changes

May 1st, 2020 - All instructions and screenshots updated

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

Environment before

Environment after

About the author

Learning paths

Andrew is a Labs Developer with previous experience in the Internet Service Provider, Audio Streaming, and CryptoCurrency industries. He has also been a DevOps Engineer and enjoys working with CI/CD and Kubernetes.

He holds multiple AWS certifications including Solutions Architect Associate and Professional.

Covered topics

Lab steps

Logging In to the Amazon Web Services Console
Creating an Amazon SNS Topic
Creating an AWS Lambda Function
Implementing an AWS Lambda Function to Upload to S3
Publishing a Message to a Amazon SNS Topic
Verifying the AWS Lambda Function Processed the Message