Integrating AWS Lambda with Slack

January 1, 2016 | Comments(5) |

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

5 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
  2. Vic

    It is very easy and understanding, worked. very appreciated for sharing.

    Reply

Leave a Reply