The EC2 Event Notifier is a simple utility that can send notifications for EC2 Events. An EC2 Event is a scheduled event by AWS, usually for alerting that an instance needs to be restarted or retired. This utility will look at all AWS EC2 instances and send a notification when an event is found.
The EC2 Event Notifier currently supports Slack Webhooks. To enable the Slack Webhook, start the application with
the -slackWebHookURL flag.
Example:
ec2EventNotifyer -slackWebHookURL https://hooks.slack.com/services/...The EC2 Event Notifier uses the native AWS SDK for Go. As such, it will look for
either environment variables or the .config file setup with aws config.
You can add additional Notifiers, such as an E-Mail notifier, Pager Duty, etc. To create a new Notifier, it must
implement the Notifier interface.
type Notifier interface {
Notify(*ec2.InstanceStatus) error
}The Notifier Interface has a single function Notify that takes in an EC2 Instance Status pointer. The EC2 Instance
Status object holds the instance information as well as a slice of Events. The Notify function is responsible for
creating the notification message and sending the notification.
To register a new Notifier, add an instance of it to the toNotify slice.
toNotify := make([]notifiers.Notifier, 0)
// Setup Slack Notifier
if slackWebHookURL != "" {
log.Println("Enabling Slack Notifier")
toNotify = append(toNotify, ¬ifiers.Slack{WebhookUR: slackWebHookURL})
}Please see the Slack implementation found in notifiers/slack.go for an example of creating a Notifier.