1.0.4 • Published 4 years ago

lambda-slack-notifier v1.0.4

Weekly downloads
86
License
-
Repository
-
Last release
4 years ago

Introduction

Lambda-slack-notifier is a Promise-based library that simplifies sending notifications from a Lambda function to a Slack channel. The notification always provides a link to the cloudwatch invocation logs of the function, making it useful for catching any errors in production and debugging them immediately. Besides linking to the logs, the notification also always provides the function name and version. An example of the notification can be seen below.

Notification example

Installation

npm i lambda-slack-notifier

Requirements

To use the library it is necessary to create an Incoming Webhook through the Slack API https://api.slack.com/incoming-webhooks. This allows you to post notifications to a channel of your choice.

Usage

To create an instance of the SlackNotifier you must provide it with an incoming webhook url for your slack channel and the context of your lambda function. You can also provide the class with an amazon region and a moment timezone for more customization. These defaults to 'eu-central-1' and 'Europe/Copenhagen'.

To send a notification to a channel you use the notify() method. This method takes in the following parameters:

  • message - A string or object containing the message of the notification being posted to slack
  • color - the color of the line to the left of the notification. The enum SlackNotificationColor includes a list of standard colors, but a hexcode can also be provided.
import SlackNotifier from 'lambda-slack-notifier'
import { SlackNotificationColor } from 'lambda-slack-notifier/dist/SlackNotificationColor'
import { Context, APIGatewayEvent } from 'aws-lambda'

const YOUR_SLACK_WEBHOOK = 'https://hooks.slack.com/services/ITLOOKS/LIKETHIS' // Use process.env instead!

export const handler = async (event: APIGatewayEvent, context: Context): Promise<any> => {
  try {
    throw new Error('This error will be posted to Slack')
  } catch (err) {
    await new SlackNotifier(YOUR_WEBHOOK_URL, context).notify(err)
  }
}