2016-11-23 19 views
8

Yeni youtube eğitimlerini takip ederek aws lambda ile çalışmaya başladım ve aws lambda işlevlerini web editörünün kendisinde başarıyla yazabildim.aws'de bir posta kodu karşıya yüklendiğinde karşılaşılan sorunlar lambda

Ancak, "fs" ve "fill-pdf" modüllerini kullanan bir node.js kodu yazdığım yerel sistemimden yükleme zip dosyasıyla denedim. Ama kodu çalıştırmayı denediğimde bana hata veriyordu.

"Hata": modül bulunamadı "/ var/task/index". İnternette aradım ve şu bağlantılardan bazılarını buldum: https://github.com/lob/lambda-pdftk-example Bunu denedim ama aynı hatayı da gösteriyor.

var index = require('index'); 
    var fillPdf = require("fill-pdf"); 
    var fs = require('fs'); 
    var formDate = { 
    'Employee Name': 'MyName', 
    'Company Name': 'ComapnyName' 
    }; 
    var pdfTemplatePath = "my.pdf"; 


    fillPdf.generatePdf(formDate, pdfTemplatePath, function(err, 
    output) { 
    if (!err) { 

     fs.writeFile('message.pdf', output, function (err) { 
    if (err) throw err; 
    console.log('It\'s saved! in same location.'); 
    }); 
    } 
    }); 

şey bu hata herhangi bir yardım için coming.Thanks olmasının sebebi ne olabilir bilmiyorum ki:

İşte benim kodudur.

+0

için index.zip karşıya? –

+0

{ "errorMessage": "Modül bulunamadı '/ var/task/index'", "errorType": "Hata", "stackTrace": [ "Function.Module._load (module.js: 276: 25) ", " Module.require (module.js: 353: 17) ", " gereksinimi (internal/module.js: 12: 17) " ] } – learner

+0

Çözüldü: Düğüm dizini klasöründeki hatam vardı indeks modülü yok. Aso, lambda'nın anlayacağı şekilde bir işleyici işlevi yazmalıyım.Direct düğümü js kodu, lambda'da çalışmayacaktır. – learner

cevap

0

Kodunuzda kullanılmadığı için var index = require('index'); hattını kaldırın. Modülü yükledikten sonra neden bulamadığı konusunda emin değilim, ama şu anki örnekte buna ihtiyacınız yok.

+0

Evet kaldırdım. Aslında bu bağlantıyı da takip ettim: http://stackoverflow.com/questions/30678348/aws-lambda-cannot-find-module – learner

+0

Şimdi hata değişti. { "errorMessage": "İşlem tamamlanmadan önce işlemden çıkıldı" } – learner

+0

Başka kod değişikliği varsa ve yeni bir hata varsa, lütfen sorunuzu güncelleyin. –

26

Klasörü değil, içeriğini sıkıştırdığınızdan emin olun. zip aşağıdaki nedeniyle kök düzeyine

+0

Teşekkür ederiz! Benim için çalıştı! –

+0

Oh şaka yapıyorsun ... Kodumu geçerek 3 saatimi boşa harcadım ve neyin yanlış olduğunu anlamaya çalışıyorum :( –

+0

@lyoseg, eğer klasörü ziplemezsen, onu Amazon'a nasıl yüklersin? Yalnızca .zip ile biten bir klasör seçebilirsin? – arcom

2

hata oluşabilir içinde index.js içerdiğini kontrol edin:

1. Properly zip the folder wait for it's zipping process completion and 
then upload. 

2. First run the main.js file locally like using node main.js and check 
are there any errors showing in the terminal window, if it does then 
fix them and then upload. 

3. Also there must be handler file that lambda needs, which is must 
    so if you have the handler.js file then when in aws lambda you 
create a lambda function and check the configuration setting there 
then do update the name of the handler file name with yours like by 
default it is index.js may be you would have lambda.js do change it 
with lambda name (example lambda.handler) 
0

bu hata oluşur o zip demektir geçerli değil formda hangi aws talepleri halinde.

Eğer zip üzerine çift tıklama, kod dosyası içerde size klasörü bulacaksınız, ancak lambda zip üzerine çift tıklama doğrudan kod dosyalarını göstermek sınırlandırmak zaman bunu istemez.

bunu yapabilmek için:

open terminal 
cd your-lambda-folder 
zip -r index.zip * 

ardından dahil olabilecek bilgileri hata artık orada mı lambda