In this blog, we are going to integrate Lambda with slack to receive important notification in the slack channel. We will accomplish the following task.
- Create an Incoming Webhook in slack.
- Create a Lambda function which sends the notification to the slack.
- Make the Lambda function subscribe to the SNS Topic.
- Create an Alarm on the EC2 instance.
- You must have a slack account
- A running EC2 instance
Step by step process to integrate Lambda with Slack:
Task 1: Create an Incoming Webhook in slack.
Step 1: Go to your slack application where you might be able to see below scenario
Step 2: Click on your team name as below
Step 3: You will find a popup Menu as shown below and click on App and Custom Integration
Step 4: You will find the application site of Slack. Type “incoming” in the search box and select the Incoming Webhooks.
Step 5: Install the app in your respective Team.
Step 6: Select the channel and click on Add Incoming Webhook
Step 7: So the Incoming Webhook is being created.
Step 8: All you need is a Webhook URL that you can find as below and you can also customize name and image of the sender and save the setting.
Step 9: We will use the Webhook URL in Lambda Function
Task 2: Create a Lambda function which sends the notification to the slack.
Step 1: Go to AWS Lambda Console and click on Get Started Now.
Step 2: Skip the Blueprint
Step 3: Insert Name and Description for your Lambda function.
Step 4: Go to the link https://s3-us-west-2.amazonaws.com/cloudthat.training/Lambda-slack-integration/lambd-slack-Integraion.dat and copy the code in the editor.
Step 5: Create a basic Execution role for lambda
Step 6: Leave other fields as it is and click on next.
Step 7: Review the function and click on Create Function.
Step 8: Your function is created and now put your webhook URL as “slack_url”’s value.
Task 3: Make the Lambda function subscribe to the SNS Topic.
Step 1: Go to SNS and click on Create Topic.
Step 2: Provide the Information as shown below.
Step 3: Now we will create a subscription for the lambda function. Click on Create Subscription.
Step 4: Select Lambda Function as protocol and Endpoint as your lambda function ARN.
Step 5: Your Function is now read to get notifications from SNS.
Step 6: You can Test, click on Action and select Configure test event.
Step 7: You can get a sample event from following link https://s3-us-west-2.amazonaws.com/cloudthat.training/Lambda-slack-integration/test-lambda.dat and you can check Message in slack.
Task 4: Create an Alarm on the EC2 instance.
Step 1: Go to your EC2 Instance and create an alarm by clicking on Alarm.
Step 2: The window will pop up and provide the information as shown below and click on “Create Alarm”.
Step 3: Your alarm is created.
Step 4: We have provided the Average CPU Utilization to 85 % but if you want to get an alarm quickly, you can put it as 1%.
Step 5: Now if your CPU will go beyond threshold value you will get a Message in Slack.
So we have configured a lambda function to send Cloudwatch alerts to Slack application.We can send any alerts which are sent through SNS to slack.We can also send a custom message by changing the lambda code.If you have any queries regarding this blog you can ask the questions to the forum.clodthat.com or you can post a comment.
- Lambda Function
- SNS Topic
- EC2 Alarm