2016-12-01 2 views
1

У меня есть функция лямбда узла, из которой я запускаю скрипт bash.Запустить скрипт bash из узла AWS Lambda function

'use strict'; 

const exec = require('child_process').exec; 

exports.handler = (event, context, callback) => { 
    const message = event.message; 
    const child = exec('./bs.sh ' + message, function(err, stdout, stderr) { 
    console.log(stdout); 
    console.log(stderr); 
    }); 
}; 

Когда я запускаю это, я получаю /bin/sh: ./bs.sh: Permission denied. Я попытался изменить разрешения с chmod 777 bs.sh перед тем, как закрепить функцию, но это тоже не сработало. Является ли это ограничением лямбда или ошибкой в ​​моем подходе?

+0

кстати: вам следует проверить ERR и обратного вызова вызова. function (err, stdout, stderr) { if (err) { callback (err); } else { console.log (stdout); console.log (stderr); callback(); } }); – hellomichibye

+0

http://stackoverflow.com/questions/34629574/can-bash-script-be-written-inside-a-aws-lambda-function –

ответ

1

Вы хотите посмотреть на

https://aws.amazon.com/blogs/compute/running-executables-in-aws-lambda/

В частности, этот бит:

включая ваши собственные исполняемые файлы легко; просто упакуйте их в загружаемый файл ZIP, а затем ссылайтесь на них (включая относительный путь в созданном ZIP-файле), когда вы вызываете их из Node.js или из других процессов, которые вы ранее запускали. Убедитесь, что вы включили следующие в начале кода функции:

process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT'] 
+0

Я пробовал это для исполняемых двоичных файлов, и я получаю отказ в разрешении – king

Смежные вопросы