2017-12-26 126 views
6

में दुःस्वप्न-डाउनलोड-मैनेजर मैं फ़ाइल डाउनलोड स्वचालित करने के लिए दुःस्वप्न जेएस का उपयोग कर रहा था। तो दो दिन पहले हमने इस उपकरण को लैम्ब्डा में ले जाने का फैसला किया था और मैं nightmare-lambda-tutorial का उपयोग करके दुःस्वप्न के साथ चलने वाली चीजें प्राप्त करने में सक्षम था, लेकिन मेरे लैम्ब्डा ने एक और दुःस्वप्न मॉड्यूल का उपयोग किया nightmare-download-manager इस डाउनलोड प्रबंधक को जोड़कर, लैम्ब्डा 'MODULE_NOT_FOUND' संदेश में विफल रहता है, हालांकि मेरे पास npm इंस्टॉल का उपयोग कर पैकेज स्थापित है और मुझे फ़ोल्डर और फ़ाइलों को node_modules के अंदर मिलता है।aws lambda

तो डिबगिंग के साथ, मैंने पाया कि यहां तक ​​कि कोड के प्रारंभिक कुछ लाइनों के साथ, लैम्ब्डा उदाहरण के लिए विफल रहता है,

var binaryPack = require('./lib/bootstrap/nightmare-lambda-pack'), 
Xvfb = require('./lib/bootstrap/xvfb'), 
Nightmare = require('nightmare'); 

require('nightmare-download-manager')(Nightmare); 

लाइन 4 मॉड्यूल नहीं त्रुटि पाई का कारण होगा। कोई विचार है कि मैं इसे कैसे हल कर सकता हूं?

+0

क्या आप संपूर्ण त्रुटि संदेश पोस्ट कर सकते हैं और स्टैक ट्रेस पोस्ट कर सकते हैं जहां यह 'MODULE_NOT_FOUND' कहता है? – dashmug

+0

ऐसा लगता है कि यह कारण है: https://stackoverflow.com/questions/36719236/nightmare-js-not-working – dashmug

उत्तर

0

यह वास्तव में या तो की तरह लगता है:

  • आपका नया निर्भरता अपने परिनियोजन योग्य .zip, या
  • आपका नया ज़िप में पैक नहीं जा सके थे अपलोड नहीं हुआ/सही ढंग से तैनात।

मुझे नहीं लगता कि इस विशेष पैकेज के लिए लैम्ब्डा पर्यावरण में कोई समस्या होने का कोई कारण नहीं है। मैंने linked to tutorial का पालन किया, लैम्ब्डा को तैनात और परीक्षण किया, nightmare-download-manager निर्भरता, को दोबारा मरम्मत और पुनर्निर्मित, और सब कुछ अपेक्षित काम करता है।


अपने तैनाती सत्यापित करें

निर्भरता की पुष्टि करने के लिए अपने कार्यक्षेत्र में और अपने परिनियोजन योग्य ज़िप फ़ाइल में मौजूद है के बाद, यदि आपको अभी भी समस्या है, तो आप को सत्यापित करने के निर्भरता लैम्ब्डा वातावरण में मौजूद है चाहता हूँ ।

मैं अस्तित्व और node_modules की सामग्री एडब्ल्यूएस कंसोल में सत्यापित करने के लिए एक तरह से देखा था, लेकिन आप do so with the CLI कर सकते हैं: एक कड़ी (10 मिनट के लिए अच्छा)

aws lambda get-function --function-name <function-name> 

प्रतिक्रिया में शामिल है कि आपको उस ज़िप फ़ाइल को डाउनलोड करने की अनुमति देगा जिससे आपका कोड तैनात किया गया था। इस ज़िप को डाउनलोड करें, और सत्यापित करें कि node_modules/nightmare-download-manager इसके अंदर है, जिसमें अपेक्षित फ़ाइलें हैं।

यदि यह गुम है, तो आपके पैकेजिंग में या आपके पैकेज के अपलोड/तैनाती के साथ कुछ गड़बड़ हुई है। मरम्मत (lib, node_modules, और index.js) को ज़िप करें, और एडब्ल्यूएस कंसोल का उपयोग करके पुन: नियोजित करें।

मान लीजिए कि require प्रश्न में बयान मेरे लिए नोड 4.3 और नोड 6.10 दोनों पर ठीक काम करता है।

+0

-package.json -index।जेएस -lib \t | \t | __ बूटस्ट्रैप \t | \t | \t | \t | _nightmare-lambda-pack.js \t | \t | _xvfb.js \t | \t | \t | __node_modules \t \t | \t \t | _nightmare \t \t | _nightmare-डाउनलोड-प्रबंधक \t \t | _aws-sdk \t \t | _fs \t \t | _mime। मैंने अभी फ़ंक्शन को डाउनलोड और चेक किया है और संरचना उपर्युक्त की तरह ठीक दिखती है – Sam

संबंधित मुद्दे