|
1 | | -process.env[‘PATH’] = process.env[‘PATH’] + ‘:’ + process.env[‘LAMBDA_TASK_ROOT’] |
2 | | - |
3 | 1 | const spawn = require('child_process').spawn; |
4 | | -const main = spawn('./main'); |
5 | | - |
6 | | -main.stdout.on('data', (data) => { |
7 | | - console.log(`stdout: ${data}`); |
8 | | -}); |
9 | | - |
10 | | -main.stderr.on('data', (data) => { |
11 | | - console.log(`stderr: ${data}`); |
12 | | -}); |
| 2 | +const main = spawn('./main', { stdio: ['pipe', 'pipe', process.stderr] }); |
13 | 3 |
|
14 | | -main.on('error', (err) => { |
15 | | - console.error(`error: ${err}`); |
16 | | - process.exit(1); |
| 4 | +main.stdout.on('data', function(data) { |
| 5 | + console.log('stdout: ' + data); |
17 | 6 | }); |
18 | 7 |
|
19 | | -main.on('close', (code) => { |
20 | | - console.log(`child process pipes closed with code ${code}`); |
21 | | -}); |
22 | | - |
23 | | -main.on('exit', (code) => { |
24 | | - console.log(`child process exited with code ${code}`); |
25 | | - process.exit(code); |
| 8 | +main.on('close', function(code) { |
| 9 | + console.log('child process pipes closed with code '+ code); |
26 | 10 | }); |
27 | 11 |
|
28 | 12 | var ctx; |
29 | 13 |
|
30 | 14 | /** |
31 | 15 | * handler for AWS Lambda |
32 | 16 | */ |
33 | | -exports.handle = function(event, context) { |
| 17 | +exports.handle = function(event, context, callback) { |
| 18 | + process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT'] |
34 | 19 | ctx = context |
| 20 | + |
| 21 | + console.log("sending data to main:\n" + JSON.stringify(event)); |
| 22 | + console.log("main pid is " + main.pid); |
35 | 23 |
|
| 24 | + main.on('exit', function(code){ |
| 25 | + callback(null, 'child process exited with code ' + code); |
| 26 | + }); |
| 27 | + |
| 28 | + main.on('error', function(err) { |
| 29 | + console.error('error: ' + err); |
| 30 | + callback(err, 'child process exited with error: ' + err); |
| 31 | + }); |
| 32 | + |
36 | 33 | main.stdin.write(JSON.stringify({ |
37 | 34 | 'event': event, |
38 | 35 | 'context': context |
|
0 commit comments