Post SNS Message to Discord Webhook
| Key | Value |
|---|---|
| Platform | Node.js 14 |
| handler | index.handler |
| Key | Description |
|---|---|
| WEBHOOK_DISCORD | Discord Webhook URL |
| const webhookUrl = process.env.WEBHOOK_DISCORD; | |
| const https = require('https'); | |
| const url = new URL(webhookUrl); | |
| exports.handler = function(event, context, callback) { | |
| send_message(event); | |
| }; | |
| function send_message(events){ | |
| const body = create_message(events); | |
| const options = { | |
| host: url.host, | |
| path: url.pathname, | |
| port: url.port, | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| 'Content-Length': Buffer.byteLength(JSON.stringify(body)) | |
| }, | |
| }; | |
| let req = https.request(options, (res) => { | |
| res.on('error', (e) => { | |
| console.log('problem with request: ' + e.message); | |
| }); | |
| }); | |
| req.write(JSON.stringify(body)); | |
| req.end(); | |
| } | |
| function create_message(events){ | |
| const sns = events.Records[0].Sns; | |
| const data = { | |
| 'embeds': [ | |
| { | |
| 'title': 'AWS Notification: ' + sns.Subject, | |
| 'description': sns.Message, | |
| 'color': 0xFF0000, | |
| 'timestamp': sns.Timestamp, | |
| } | |
| ] | |
| }; | |
| return data; | |
| } |