Jeśli jest to przypadek użycia Lambdy w niewłaściwy sposób, proszę dać mi znać.Jak mogę spakować lub zainstalować cały program, aby działał w funkcji AWS Lambda?
Chcę zainstalować Scrapy w funkcji Lambda i wywołać funkcję, aby rozpocząć indeksowanie. Mój pierwszy problem polega na tym, jak go zainstalować, aby wszystkie ścieżki były poprawne. Zainstalowałem program, używając katalogu, który ma być spakowany jako root, więc zip zawiera wszystkie pliki źródłowe i plik wykonywalny. Opieram swoje wysiłki na artykule this. W wierszu, który mówi, że należy zawrzeć na początku mojej funkcji, skąd pochodzi zmienna "proces"? Próbowałem,
var process = require('child_process');
var exec = process.exec;
process.env['PATH'] = process.env['PATH'] + ':' +
process.env['LAMBDA_TASK_ROOT']
ale pojawia się błąd,
"errorMessage": "Cannot read property 'PATH' of undefined",
"errorType": "TypeError",
Czy muszę zawierać wszystkich plików bibliotecznych, lub po prostu wykonywalny z katalogu/usr/lib? Jak dołączyć tę linię kodu, o której mówi artykuł?
Edit: Próbowałem przeniesienie kodu do child_process.exec i otrzymał błąd
"errorMessage": "Command failed: /bin/sh: process.env[PATH]: command not found\n/bin/sh: scrapy: command not found\n"
Oto mój obecny, cała funkcja
console.log("STARTING");
var process = require('child_process');
var exec = process.exec;
exports.handler = function(event, context) {
//Run a fixed Python command.
exec("process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT']; scrapy crawl backpage2", function(error, stdout) {
console.log('Scrapy returned: ' + stdout + '.');
context.done(error, stdout);
});
};
Jest to przykład jak "Running R Statystyki w AWS Lambda" ze wszystkich etapów: http://nafiux.com/blog/2015/09/11/running-r-statistics-in- aws-lambda/ –
@michaelAdam byłeś w stanie rozwiązać ten problem? Mam dokładnie ten sam problem –
HI @michaelAdam, wygląda na to [ta odpowiedź poniżej] (https://stackoverflow.com/a/40259180/39396) jest poprawna; czy rozważałeś zaakceptowanie jednej z odpowiedzi na swoje pytanie? –