Process Amazon SNS Notifications with AWS Lambda

Lab Steps

Logging in to the Amazon Web Services Console
Creating an Sns Topic
Creating a Lambda Function to Upload a File to S3
Implementing a Lambda Function to Upload to S3
Publishing a Message to to a Sns Topic
Verifying the Lambda Function Processed the Message

The hands-on lab is part of these learning paths

Serverless Platform Services on AWS
course-steps 11 lab-steps 6
DevOps Engineer – Professional Certification Preparation for AWS
course-steps 35 certification 5 lab-steps 18 quiz-steps 2 description 3
SysOps Administrator – Associate Certification Preparation for AWS
course-steps 34 certification 5 lab-steps 30 quiz-steps 4 description 5
Certified Developer – Associate Certification Preparation for AWS
course-steps 29 certification 5 lab-steps 22 description 2
Getting Started with Serverless Computing on AWS
course-steps 8 certification 1 lab-steps 9
more_horiz See 3 more

Ready for the real environment experience?

Time Limit1h 30m
star star star star star-half


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)


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

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.