AWS CodeCommit lets you host private Git repositories within the AWS ecosystem. It is secure, highly-scalable, and fully compatible with traditional Git tools.
You can configure CodeCommit to trigger actions when events happen such as:
- Pushing new code
- Creating new branches
- Creating tags
- Merging branches
This allows you to send notifications, integrate with third-party services, or implement custom logic.
In this lab, you will learn how to process CodeCommit events with a Lambda function. As a simple example, you will use Python to create custom SNS notifications, containing useful information about branches and messages for each commit.
Learning Objectives
Upon completion of this lab you will be able to:
- Create a CodeCommit repository
- Create an SNS topic and a subscription
- Implement a Lambda function to process your CodeCommit events
- Test that your Lambda function processes events and sends a notification
Intended Audience
- Developers
- Cloud Engineers
Prerequisites
You should have a conceptual understanding of source control.
This lab involves sending email notifications, you will need an email address you can check to complete the lab.
Familiarity with the following will be beneficial but is not required:
- Python programming language
- Linux command-line
- Publish/Subscribe asynchronous messaging
The following courses can be used to fulfill the prerequisites:
- AWS CodeCommit
- Using SQS, SNS and SES in a Decoupled and Distributed Environment
- Linux Command Line Byte Session
- Python for Beginners
Updates
January 10th, 2022 - Corrected grammatical error
November 15th, 2021 - Added a reminder to ensure the correct region is used
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
June 3rd, 2020 - All screenshots and instructions updated
January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab
Environment before
Environment after
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.