-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhandler.js
60 lines (51 loc) · 1.52 KB
/
handler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// config.js file must be like this
// module.exports = (offline) => {
// return offline
// ? {
// awsAccountId: '123456789012',
// region: 'us-east-1'
// }
// :{
// awsAccountId: '098765432109', <- Real awsAccountId
// region: 'us-east-1'
// };
// }
const sendMessage = (event, context, callback) => {
const AWS = require('aws-sdk');
const config = require('./config')(process.env.IS_OFFLINE);
const snsConfig = process.env.IS_OFFLINE
? {
endpoint: 'http://127.0.0.1:4002',
region: config.region,
}
: {};
const message = { message: 'Ultra Test Message' };
const snsPublishConfig = {
Message: JSON.stringify({ default: JSON.stringify(message) }),
MessageStructure: 'json',
TopicArn: `arn:aws:sns:${config.region}:${config.awsAccountId}:sns-example-topic`,
};
const sns = new AWS.SNS(snsConfig);
const snsPublish = sns.publish(snsPublishConfig).promise();
snsPublish.then(
() => {
const response = {
statusCode: 200,
body: JSON.stringify({ message: 'message sent' })
};
callback(null, response);
}
).catch(
err => {
console.error('ERROR: ', err);
}
);
};
const getMessage = (event, context, callback) => {
console.info('incoming message: ', event.Records[0].Sns.Message);
callback(null, { response: 'message received' });
};
module.exports = {
sendMessage,
getMessage
};