Sto lavorando su un lambda che fa uso di moduli (asincrona, richiesta, ecc) codiceImpossibile utilizzare qualsiasi modulo 3rd party con AWS Lambda
Unable to import module 'index': Error
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/task/index.js:1:63)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
Esempio:
var
AWS = require('aws-sdk'),
util = require('util'),
request = require('request');
exports.handler = function(event, context) {
console.log('test');
context.done();
};
E funziona bene (stampa test) purché non siano richiesti moduli di terze parti (oltre a aws-sdk). Non appena aggiungo una riga come:
require('request') // or async, config and so on
Non riesce con l'errore sopra riportato. Ho provato a chiamare direttamente questi moduli specificando il percorso completo senza fortuna. È come guardare la directory sbagliata quando si chiama require
.
Dumping process.env
dei rendimenti console:
PATH: '/usr/local/bin:/usr/bin:/bin',
LAMBDA_TASK_ROOT: '/var/task',
LAMBDA_RUNTIME_DIR: '/var/runtime',
AWS_REGION: 'us-west-2',
AWS_DEFAULT_REGION: 'us-west-2',
AWS_LAMBDA_LOG_GROUP_NAME: '/aws/lambda/Thumbnailer',
AWS_LAMBDA_LOG_STREAM_NAME: '2015/12/10/[$LATEST]3f8ef236195448c88f206634bde6301b',
AWS_LAMBDA_FUNCTION_NAME: 'Thumbnailer',
AWS_LAMBDA_FUNCTION_MEMORY_SIZE: '512',
AWS_LAMBDA_FUNCTION_VERSION: '$LATEST',
NODE_PATH: '/var/runtime:/var/task:/var/runtime/node_modules',
Ecco il module stavo lavorando fuori - evidentemente questo utilizzato per lavorare ad un certo punto, ma non fa per me.
Idee? Sento che mi manca qualche configurazione unica per lambda qui.
Puoi descrivere il tuo pacchetto di distribuzione lambda? – James
@James - I file zip (non la cartella). Lambda sembra funzionare bene, non può usare quel modulo. – cyberwombat
Beh, dovrei dire che non genera errori, ma non succede niente dal momento che è solo il callback, quindi forse un altro problema. – cyberwombat