ShamilAssylbekov / terraform-aws-notify-slack

Terraform module which creates SNS topic and Lambda function which sends notifications to Slack

Home Page:https://registry.terraform.io/modules/terraform-aws-modules/notify-slack/aws

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AWS Notify Slack Terraform module

This module creates SNS topic (or use existing one) and a AWS Lambda function which sends notifications to Slack using incoming webhooks API.

Start by setting up an incoming webhook integration in your Slack workspace.

Features

  • AWS Lambda runtime Python 3.6
  • Create new SNS topic or use existing one
  • Support plaintext and encrypted version of Slack webhook URL
  • Most of Slack message options are customizable
  • Support different types of SNS messages:

Usage

module "notify_slack" {
  source = "terraform-aws-modules/notify-slack/aws"

  sns_topic_name = "slack-topic"

  slack_webhook_url = "https://hooks.slack.com/services/AAA/BBB/CCC"
  slack_channel     = "aws-notification"
  slack_username    = "reporter"
}

Use existing SNS topic or create new

If you want to subscribe AWS Lambda Function created by this module to an existing SNS topic you should specify create_sns_topic = false as argument and specify name of existing SNS topic name in sns_topic_name.

Examples

  • notify-slack-simple - Creates SNS topic which sends messages to Slack channel.
  • notify-slack-kms - Creates SNS topic which sends messages to Slack channel (using KMS to encrypt Slack webhook URL).
  • cloudwatch-alerts-to-slack - End to end example which shows how to send AWS Cloudwatch alerts to Slack channel and use KMS to encrypt webhook URL.

Inputs

Name Description Type Default Required
create_sns_topic Whether to create new SNS topic string true no
kms_key_arn ARN of the KMS key used for decrypting slack webhook url string `` no
lambda_function_name The name of the Lambda function to create string notify_slack no
slack_channel The name of the channel in Slack for notifications string - yes
slack_username The username that will appear on Slack on messages string - yes
slack_webhook_url The URL of Slack webhook string - yes
sns_topic_name The name of the SNS topic to create string - yes

Outputs

Name Description
lambda_iam_role_arn The ARN of the IAM role used by Lambda function
lambda_iam_role_name The name of the IAM role used by Lambda function
notify_slack_lambda_function_arn The ARN of the Lambda function
notify_slack_lambda_function_invoke_arn The ARN to be used for invoking Lambda function from API Gateway
notify_slack_lambda_function_last_modified The date Lambda function was last modified
notify_slack_lambda_function_name The name of the Lambda function
notify_slack_lambda_function_version Latest published version of your Lambda function
this_slack_topic_arn The ARN of the SNS topic from which messages will be sent to Slack

Authors

Module managed by Anton Babenko.

License

Apache 2 Licensed. See LICENSE for full details.

About

Terraform module which creates SNS topic and Lambda function which sends notifications to Slack

https://registry.terraform.io/modules/terraform-aws-modules/notify-slack/aws

License:Other


Languages

Language:HCL 61.2%Language:Python 38.8%