लैम्ब्डा .zip
में एनपीएम मॉड्यूल शामिल करने के लिए एक फ़ाइल की आवश्यकता होती है । और आपको वास्तव में किसी भी चीज़ के लिए लम्बे वेब संपादक का उपयोग नहीं करना चाहिए- जैसा कि किसी भी उत्पादन कोड के साथ, आपको स्थानीय रूप से विकसित होना चाहिए, जीआईटी के लिए प्रतिबद्ध होना चाहिए, आदि।
मेरा बहाव:
1) मेरे लैम्ब्डा कार्य आमतौर पर एक बड़ी परियोजना के लिए सहायक उपयोगिताओं हैं, इसलिए मैं उन्हें घर देने के लिए एक / aws / lambdas निर्देशिका बनाता हूं।
2) प्रत्येक व्यक्तिगत लैम्ब्डा डायरेक्टरी में एक इंडेक्स.जेएस फाइल होती है जिसमें फंक्शन कोड होता है, एक पैकेज । जसन फाइल डिपेंडेंसी निर्भरता, और एक / नोड_मॉड्यूल उपनिर्देशिका। (Package.json फ़ाइल का उपयोग लैम्ब्डा द्वारा नहीं किया गया है, यह सिर्फ इसलिए है ताकि हम स्थानीय रूप से npm install
कमांड चला सकें ।)
package.json:
{
"name": "my_lambda",
"dependencies": {
"svg2png": "^4.1.1"
}
}
3) I .ignignore सभी node_modules निर्देशिका और .zip फ़ाइलों को बनाता है ताकि npm से उत्पन्न फाइलें संस्थापित हो और ज़िपिंग हमारे रेपो को अव्यवस्थित न करें।
.gitignore:
# Ignore node_modules
**/node_modules
# Ignore any zip files
*.zip
4) मैं npm install
मॉड्यूल स्थापित करने के लिए निर्देशिका के भीतर से चलाता हूं , और फ़ंक्शन को स्थानीय रूप से विकसित / परीक्षण करता हूं ।
5) I। लैम्बडा डायरेक्टरी को .zip करें और कंसोल के माध्यम से अपलोड करें।
( महत्वपूर्ण: फ़ाइल को ज़िप करने के लिए फाइंडर से मैक की 'कंप्रेस' उपयोगिता का उपयोग न करें! आपको CLI से डायरेक्टरी के रूट से ज़िप को चलाना चाहिए- यहां देखें )
zip -r ../yourfilename.zip *
ध्यान दें:
यदि आप अपने मैक पर स्थानीय रूप से नोड मॉड्यूल स्थापित करते हैं, तो आप समस्याओं में भाग सकते हैं, क्योंकि लैम्बडा के लिनक्स-आधारित वातावरण में तैनात होने पर कुछ प्लेटफ़ॉर्म-विशिष्ट मॉड्यूल विफल हो सकते हैं। (देखें https://stackoverflow.com/a/29994851/165673 )
समाधान एएमआई से लॉन्च किए गए ईसी 2 उदाहरण पर मॉड्यूल को संकलित करना है जो लैंबडा नोड.जेएस रनटाइम के साथ मेल खाता है जो आप उपयोग कर रहे हैं (लैंबडा रनटाइम की सूची और उनके संबंधित एएमआई देखें )।
Node.js में AWS लाम्बा तैनाती पैकेज भी देखें - AWS लाम्बा