Se si tratta di utilizzare Lambda completamente nel modo sbagliato, fatemelo sapere.Come posso impacchettare o installare un intero programma da eseguire in una funzione AWS Lambda
Desidero installare Scrapy in una funzione Lambda e richiamare la funzione per iniziare una ricerca per indicizzazione. Il mio primo problema è come installarlo, in modo che tutti i percorsi siano corretti. Ho installato il programma utilizzando la directory da zippare come root, quindi lo zip contiene tutti i file sorgente e l'eseguibile. Sto basando i miei sforzi sull'articolo this. Nella riga che dice di includere all'inizio della mia funzione, da dove viene la variabile "processo"? Ho cercato,
var process = require('child_process');
var exec = process.exec;
process.env['PATH'] = process.env['PATH'] + ':' +
process.env['LAMBDA_TASK_ROOT']
ma ottengo l'errore,
"errorMessage": "Cannot read property 'PATH' of undefined",
"errorType": "TypeError",
Ho bisogno di includere tutti i file di libreria, o semplicemente l'eseguibile da/usr/lib? Come posso includere quella riga di codice che l'articolo dice che ho bisogno?
Edit: Ho provato a spostare il codice in un child_process.exec, e ha ricevuto l'errore
"errorMessage": "Command failed: /bin/sh: process.env[PATH]: command not found\n/bin/sh: scrapy: command not found\n"
Ecco il mio attuale, intera funzione
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);
});
};
V'è un esempio di come "Running R statistiche in AWS Lambda" con tutti i passaggi: http://nafiux.com/blog/2015/09/11/running-r-statistics-in- aws-lambda/ –
@michaelAdam sei riuscito a risolvere questo problema? Sto avendo esattamente lo stesso numero –
HI @michaelAdam, sembra che [questa risposta sotto] (https://stackoverflow.com/a/40259180/39396) sia corretta; hai considerato di accettare una delle risposte alla tua domanda? –