All Projects → arabold → Aws To Slack

arabold / Aws To Slack

Licence: mit
Forward AWS CloudWatch Alarms and other notifications from Amazon SNS to Slack.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Aws To Slack

Iopipe Js Core
Observe and develop serverless apps with confidence on AWS Lambda with Tracing, Metrics, Profiling, Monitoring, and more.
Stars: ✭ 123 (-52.87%)
Mutual labels:  aws, serverless, aws-lambda, devops
Terraform Aws Lambda
Terraform module, which takes care of a lot of AWS Lambda/serverless tasks (build dependencies, packages, updates, deployments) in countless combinations
Stars: ✭ 190 (-27.2%)
Mutual labels:  aws, serverless, aws-lambda
Components
The Serverless Framework's new infrastructure provisioning technology — Build, compose, & deploy serverless apps in seconds...
Stars: ✭ 2,259 (+765.52%)
Mutual labels:  aws, serverless, aws-lambda
Rust Crowbar
Wrapper to simplify writing AWS Lambda functions in Rust (using the Python execution environment)
Stars: ✭ 198 (-24.14%)
Mutual labels:  aws, serverless, aws-lambda
Aws Lambda Typescript
This sample uses the Serverless Application Framework to implement an AWS Lambda function in TypeScript, deploy it via CloudFormation, publish it through API Gateway to a custom domain registered on Route53, and document it with Swagger.
Stars: ✭ 228 (-12.64%)
Mutual labels:  aws, serverless, aws-lambda
Chrome Aws Lambda
Chromium Binary for AWS Lambda and Google Cloud Functions
Stars: ✭ 2,502 (+858.62%)
Mutual labels:  aws, serverless, aws-lambda
Aws Lambda Power Tuning
AWS Lambda Power Tuning is an open-source tool that can help you visualize and fine-tune the memory/power configuration of Lambda functions. It runs in your own AWS account - powered by AWS Step Functions - and it supports three optimization strategies: cost, speed, and balanced.
Stars: ✭ 3,040 (+1064.75%)
Mutual labels:  aws, serverless, aws-lambda
Serverless Aws Alias
Alias support for Serverless 1.x
Stars: ✭ 171 (-34.48%)
Mutual labels:  aws, serverless, aws-lambda
Serverless Haskell
Deploying Haskell applications to AWS Lambda with Serverless
Stars: ✭ 204 (-21.84%)
Mutual labels:  aws, serverless, aws-lambda
Retinal
🏙 Retinal is a Serverless AWS Lambda service for resizing images on-demand or event-triggered
Stars: ✭ 208 (-20.31%)
Mutual labels:  aws, serverless, aws-lambda
Serverless Slack App
A Serverless.js Slack App Boilerplate with OAuth and Bot actions
Stars: ✭ 217 (-16.86%)
Mutual labels:  aws, serverless, slack
Algnhsa
AWS Lambda Go net/http server adapter
Stars: ✭ 226 (-13.41%)
Mutual labels:  aws, serverless, aws-lambda
Serverless Chrome
🌐 Run headless Chrome/Chromium on AWS Lambda
Stars: ✭ 2,625 (+905.75%)
Mutual labels:  aws, serverless, aws-lambda
Middy
🛵 The stylish Node.js middleware engine for AWS Lambda
Stars: ✭ 2,592 (+893.1%)
Mutual labels:  aws, serverless, aws-lambda
Serverlessish
Run the same Docker images in AWS Lambda and AWS ECS
Stars: ✭ 177 (-32.18%)
Mutual labels:  aws, serverless, aws-lambda
Aws Cdk Changelogs Demo
This is a demo application that uses modern serverless architecture to crawl changelogs from open source projects, parse them, and provide an API and website for viewing them.
Stars: ✭ 197 (-24.52%)
Mutual labels:  aws, serverless, aws-lambda
Serverlessbydesign
A visual approach to serverless development. Think. Build. Repeat.
Stars: ✭ 254 (-2.68%)
Mutual labels:  aws, serverless, aws-lambda
Cartoonify
Deploy and scale serverless machine learning app - in 4 steps.
Stars: ✭ 157 (-39.85%)
Mutual labels:  aws, serverless, aws-lambda
Aws Serverless Cicd Workshop
Learn how to build a CI/CD pipeline for SAM-based applications
Stars: ✭ 158 (-39.46%)
Mutual labels:  aws, serverless, devops
Dialetus Service
API to Informal dictionary for the idiomatic expressions that each Brazilian region It has
Stars: ✭ 202 (-22.61%)
Mutual labels:  aws, serverless, aws-lambda

AWS-to-Slack

npm license dependencies

Forward AWS CloudWatch Alarms and other notifications from Amazon SNS to Slack.

CloudWatch Example EB Event Example
CloudWatch Alarm Example Elastic Beanstalk Example

What is it?

AWS-to-Slack is a Lambda function written in Node.js that forwards alarms and notifications to a dedicated Slack channel. It is self-hosted in your own AWS environment and doesn't have any 3rd party dependencies other than the Google Charts API for rendering CloudWatch metrics.

Supported AWS product notification formats:

  • Auto-Scaling Events
  • Batch Events
  • CloudFormation
  • CloudWatch Alarms (incl. Metrics!)
  • CodeBuild
  • CodeCommit
  • CodeDeploy 🆕 (via SNS/CloudWatch)
  • CodePipeline 🆕 (via SNS/CloudWatch)
  • CodePipeline Manual Approval 🆕
  • Elastic Beanstalk
  • GuardDuty 🆕
  • Health Dashboard
  • Inspector
  • RDS
  • SES Received Notifications
  • Generic SNS messages
  • Plain text messages

Additional formats will be added. Pull Requests are welcome!

Try!

Ready to try the latest version for yourself? Installation into your own AWS environment is simple:

Option 1: Quick Start (OLD CODE)

Launch CloudFormation Stack

Warning! The template referenced by this link is an old template and old code! If you want the latest version of this repo, you need to update the Lambda code after it's launched.

Option 2: Get the latest bug fixes

  1. Download this repo locally.

  2. Use AWS Console's Create CloudFormation Stack tool.

    Upload cloudformation.yaml as your template.

  3. Finish launching the Stack.

    For details on the parameter values, see Installation section.

  4. Build / Update the code by running the following from the root of this project:

    AWS_REGION="<your_lambda_region>" LAMBDA_NAME="<your_lambda_name>" make deploy
    

    If you use AWS CLI profiles, simply add AWS_PROFILE to the make command like so:

    AWS_PROFILE="my-profile" AWS_REGION="<your_lambda_region>" LAMBDA_NAME="<your_lambda_name>" make deploy
    

Option 3: Use deploy target

See Managing Multiple Deployments for a .env file approach to creating or managing multiple stacks.

Installation

Step 1: Setup Slack

The Lambda function communicates with Slack through a Slack webhook webhook. Note that you can either create an app, or a custom integration > Incoming webhook (easier, will only let you add a webhook)

  1. Navigate to https://my.slack.com/apps/manage and click "Add Configuration".
  2. Choose the default channel where messages will be sent and click "Add Incoming WebHooks Integration".
  3. Copy the webhook URL from the setup instructions and use it in the next section.
  4. Click "Save Settings" at the bottom of the Slack integration page.

Slack Configuration

Step 2: Configure & Launch the CloudFormation Stack

Note that the AWS region will be the region from which you launch the CloudFormation wizard, which will also scope the resources (SNS, etc.) to that region.

Launch the CloudFormation Stack by using our preconfigured CloudFormation template and following the steps above.

Afterwards

Click "Next" and on the following page name your new stack and paste the webhook URL from before into the "HookUrl" field. You can also configure a different channel to post to if wanted.

AWS CloudFormation Configuration

Click "Next" again, complete the stack setup on the following pages and finally launch your stack.

Step 3: Subscribe to Triggers

Before the Lambda function will actually do anything you need to subscribe it to actual CloudWatch alarms and other SNS triggers. Open up the AWS Lambda, switch to the "Triggers" tab and subscribe for all events you're interested in.

Lambda Triggers

Setting Up AWS CodeBuild

CodeBuild integration was suggested by ericcj and is based on the Medium post Monitor your AWS CodeBuilds via Lambda and Slack by Randy Findley.

To enable CodeBuild notifications add a new CloudWatch Event Rule, choose CodeBuild as source and CodeBuild Build State Change as type. As Target select the aws-to-slack Lambda. You can leave all other settings as is. Once your rule is created all CodeBuild build state events will be forwarded to your Slack channel.

Setting Up AWS CodeCommit

Similar to the CodeBuild integration, CodeCommit notifications are triggered by CloudWatch Event Rules. Create a new CloudWatch Event Rule, select CodeCommit as the source, and select one of the supported event types:

  • CodeCommit Pull Request State Change - Will generate events when a pull request is opened, closed, merged, or updated.
  • CodeCommit Repository State Change - Will generate events when a branch or tag reference is created, updated, or deleted.

Add the aws-to-slack lambda as the target. No other settings are needed.

Managing Multiple Deployments

You can save local .env files that contain your stack configurations for easier deployment and updates. Copy targets/example.env to a separate file and customize the parameters. Then deploy the file like this:

TARGET=targets/my-deploy.env make deploy

If you want to force-compile this project and push your code to a stack, use this:

TARGET=targets/my-deploy.env make package deploy

If you need to update your CloudFormation parameters, try this:

TARGET=targets/my-deploy.env make update-stack

Contributing

You want to contribute? That's awesome! 🎉

Check out our issues page for some ideas how to contribute and a list of open tasks. There're plenty of notification formats that still need to be supported.

The repository comes with a very simple Makefile to build the CloudFormation stack yourself.

make package

This generates a new release.zip in the root folder. Upload this zip to your AWS Lambda function and you're good to go. Make sure to check out Managing Multiple Deployments for a more scalable solution to deploys.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].