@gammarers/aws-sns-slack-message-lambda-subscription
Version:
This AWS CDK Construct is designed to post messages sent from an SNS topic to a Slack Webhook via a Lambda function.
96 lines (66 loc) • 3.22 kB
Markdown
# AWS SNS Slack Message Lambda Subscription
[](https://github.com/gammarers/aws-sns-slack-message-lambda-subscription/blob/main/LICENSE)
[](https://www.npmjs.com/package/@gammarers/aws-sns-slack-message-lambda-subscription)
[](https://pypi.org/project/gammarers.aws-sns-slack-message-lambda-subscription/)
[](https://www.nuget.org/packages/Gammarers.CDK.AWS.SNSSlackMessageLambdaSubscription/)
[](https://github.com/gammarers/aws-sns-slack-message-lambda-subscription/actions/workflows/release.yml)
[](https://github.com/gammarers/aws-sns-slack-message-lambda-subscription/releases)
This AWS CDK Construct is designed to post messages sent from an SNS topic to a Slack Webhook via a Lambda function. The Lambda function accepts JSON text as a message, formats it for Slack, and sends it to the Slack Webhook API.
## Incoming Sample Message

## Installation
### TypeScript
#### install by npm
```shell
npm install @gammarers/aws-sns-slack-message-lambda-subscription
```
#### install by yarn
```shell
yarn add @gammarers/aws-sns-slack-message-lambda-subscription
```
### Python
```shell
pip install gammarers.aws-sns-slack-message-lambda-subscription
```
### C# / .NET
```shell
dotnet add package Gammarers.CDK.AWS.SNSSlackMessageLambdaSubscription
```
## Example
### Please save it in AWS Secrets Manager in the following format.
get your slack webhook url parts
```text
https://hooks.slack.com/services/<workspace>/<channel>/<whebook>
```
| SecretKey | SecretValue |
|-------------|-----------------|
| Workspace | \<workspace\> |
| Channel | \<channel\> |
| Webhook | \<whebook\> |
### Code
```typescript
import { SNSSlackMessageLambdaSubscription } from '@gammarer/aws-sns-slack-message-lambda-subscription';
declare const topic: sns.Topic;
new SNSSlackMessageLambdaSubscription(stack, 'SNSSlackMessageLambdaSubscription', {
topic,
slackWebhookSecretName: 'slak-webhook', // alredy saved slack webhook info.
});
```
```json
{
"text": ":mega: *TEST*",
"attachments": [{
"color": "#2eb886",
"title": "CodePipeline pipeline execution *SUCCEED*",
"title_link": "https://github.com/yicr",
"fields": [
{
"title": "Pipeline",
"value": "pipeline-name"
}
]
}]
}
```
## License
This project is licensed under the Apache-2.0 License.