This repository was archived by the owner on Jan 4, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
70 lines (58 loc) · 1.89 KB
/
index.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
61
62
63
64
65
66
67
68
69
70
let snsApi = require('./snsApi.js');
exports.handler = async (event) => {
console.log(`REQUEST: ${JSON.stringify(event)}`);
const CODEC = process.env['CODEC'];
const EXTENSION = process.env['EXTENSION'] || ".ogg";
const TOPIC_ARN = process.env['TOPIC_ARN'];
const DEST = process.env['DEST'] || "transcoded-audio";
const TRIM_ENABLED = process.env['TRIM_ENABLED'] || false;
const TRIM_FROM = process.env['TRIM_FROM'] || 0;
const TRIM_TO = process.env['TRIM_TO'] || 180;
console.log(`ENV SETTINGS: Codec: ${CODEC} EXTENSION: ${EXTENSION} TOPIC_ARN: ${TOPIC_ARN}`);
if (!CODEC || !TOPIC_ARN) {
throw "Missing mandatory env var";
}
let {
Records: [{
Sns: {
MessageAttributes: {
bucket: {
Value: bucket
},
key: {
Value: key
},
"transcribe-provider": {
Value: provider
},
"api-key-id": {
Value: apiKeyId
},
"pid": {
Value: pid
}
}
}
}]
} = event;
if (!bucket || !key || !provider || !apiKeyId || !pid) {
throw "Missing sns message attributes (field)";
}
return snsApi.publish({
Message: JSON.stringify({
in: {
bucket: bucket,
key: key
},
out: {
bucket: bucket,
key: `${DEST}/${apiKeyId}/${pid}${EXTENSION}`,
codec: CODEC,
trimEnabled: JSON.parse(TRIM_ENABLED),
trimFrom: parseInt(TRIM_FROM,10),
trimTo: parseInt(TRIM_TO,10)
}
}),
TopicArn: TOPIC_ARN
});
};