Integrating AWS Lambda with Slack

January 1, 2016 | Comments(3) |

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.

Prerequisites:

  • 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

A1

Step 2: Click on your team name as below

1

Step 3: You will find a popup Menu as shown below and click on App and Custom Integration

2

Step 4: You will find the application site of Slack. Type “incoming” in the search box and select the Incoming Webhooks.

 

3

Step 5: Install the app in your respective Team.

 

4

 

Step 6: Select the channel and click on Add Incoming Webhook

 

6

 

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.

 

7

 

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.

 

8

 

Step 2: Skip the Blueprint

 

A2

Step 3: Insert Name and Description for your Lambda function.

 

A3

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

 

9

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.

13

 

Step 2: Provide the Information as shown below.

 

14

Step 3: Now we will create a subscription for the lambda function. Click on Create Subscription.

15

Step 4: Select Lambda Function as protocol and Endpoint as your lambda function ARN.

 

16

 

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.

 

17

 

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.

 

11

Step 2: The window will pop up and provide the information as shown below and click on “Create Alarm”.

12

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.

Thank you.

 

Cleanup:

  • Lambda Function
  • SNS Topic
  • EC2 Alarm

3 Responses to “Integrating AWS Lambda with Slack”

  1. meathouse

    Thanks! Worked perfectly. I followed a few online demos and this was the only one that worked. Each piece is broken down well. Huge time saver. Thanks again.

    Reply

Leave a Reply