In this workshop, you'll create and deploy a simple Slack application (bot) that echoes back user's messages. The application will include a Slack app connected to a serverless back-end that processes Slack events and publishes messages to Slack.
The application architecture uses AWS Lambda, Amazon API Gateway, AWS Secrets Manager, Amazon Simple Notifications Service (SNS), Amazon CloudWatch, and AWS Chatbot. The Lambda function runs the back-end code that processes events from Slack that it receives via the API Gateway endpoint. Secrets Manager stores the Slack secret that the Lambda function uses to post messages to Slack. Monitoring is done via alarms in CloudWatch that sends state changes to an SNS topic that in turn triggers a notification in Slack through AWS Chatbot.
The infrastructure is orchestrated by a CI/CD pipeline that uses AWS Serverless Application Model, AWS CodePipeline, AWS CodeCommit, AWS CodeBuild, and AWS CloudFormation. CloudFormation deployment notifications are published to Slack using the SNS topic and AWS Chatbot.
See the diagram below for a depiction of the complete architecture.
This workshop is divided into four modules. Each module describes a scenario of what we're going to build and step-by-step directions to help you implement the architecture and verify your work.
Module | Description |
---|---|
Serverless App Setup | Create a new Serverless Application which will support your application and provide CI/CD for it. |
Code Management | Set up an IAM user for and then clone locally the CodeCommit repository. Commit the new application code and SAM template. |
Slack bot setup | Create a Slack app to connect with AWS. |
AWS Notifications | Connect your chat bot back to AWS to recieve notification of events. |
⭐ Before starting, please review the Setup notes.
After you have completed the workshop you can delete all of the resources that were created by following the cleanup guide.