console.log('Loading function'); | |
const https = require('https'); | |
const url = require('url'); | |
// to get the slack hook url, go into slack admin and create a new "Incoming Webhook" integration | |
const slack_url = 'https://hooks.slack.com/services/...'; | |
const slack_req_opts = url.parse(slack_url); | |
slack_req_opts.method = 'POST'; | |
slack_req_opts.headers = {'Content-Type': 'application/json'}; | |
exports.handler = function(event, context) { | |
(event.Records || []).forEach(function (rec) { | |
if (rec.Sns) { | |
var req = https.request(slack_req_opts, function (res) { | |
if (res.statusCode === 200) { | |
context.succeed('posted to slack'); | |
} else { | |
context.fail('status code: ' + res.statusCode); | |
} | |
}); | |
req.on('error', function(e) { | |
console.log('problem with request: ' + e.message); | |
context.fail(e.message); | |
}); | |
req.write(JSON.stringify({text: JSON.stringify(rec.Sns.Message, null, ' ')})); // for testing: , channel: '@vadim' | |
req.end(); | |
} | |
}); | |
}; |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
You are a Gentleman and a Scholar; thank you! :) |
This comment has been minimized.
This comment has been minimized.
Getting a "null" message and no result. Admittedly new to Lambda. Curious if it's me or perhaps code require an update? |
This comment has been minimized.
This comment has been minimized.
Same here. Getting |
This comment has been minimized.
This comment has been minimized.
Thanks a lot for the base code. I've used it to integrate Slack into AWS CodeCommit (but without SNS in this case, the risk is acceptable). Ping back on http://stackoverflow.com/questions/43065388/register-an-aws-git-code-push-event-in-exact-online-erp/43065389#43065389 |
This comment has been minimized.
This comment has been minimized.
This looks very useful; do you have a license you'd prefer to govern use of this code? |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@benyanke good fork! I also change it for CodeCommit, might fork it to show the code as well later for those that need a nice icon to their Slack channel, here's the new one for AWS, and crops as a square nicely in Slack Incoming Hooks settings another trick is to use environment variables so you can actually add your slack channel in the function variables so you can use the script in another function to dump to another channels without change the code itself, like
and set up as: |
This comment has been minimized.
This comment has been minimized.
Works! Just what I needed, thank you! |
This comment has been minimized.
This comment has been minimized.
How to add 2 slack urls? |
This comment has been minimized.
This comment has been minimized.
How do I update "rec.Sns.Message" to be some custom text? Can I set "rec.Sns.Message" from somewhere in the AWS dashboard? |
This comment has been minimized.
This comment has been minimized.
Newbie here - Can someone explain in little more detail on how to add this into a Lambda? I created a Lambda function, chose its runtime to be Nodejs 10.x and it opens with a default file of index.js. I assume I can not copy and paste this code into the index.js? Anything else special needed to call this from SNS? |
This comment has been minimized.
Thank you! This worked great!