कल्पना करें कि आपको AWS लैम्ब्डा फ़ंक्शन पर पायथन स्क्रिप्ट चलाने की आवश्यकता है और आपको यह त्रुटि मिलती है?
{ "errorMessage": "Unable to import module 'lambda_function': No module named 'pandas', "errorType": "Runtime.ImportModuleError" ... }
चिंता न करें यह एक सामान्य त्रुटि है और मैं इसमें ज्यादा समय नहीं लगाने जा रहा हूं
कई तरीके हैं लेकिन मैं आपको AWS लैम्ब्डा फ़ंक्शन में पांडा आयात करने का सबसे आसान तरीका बताने जा रहा हूं, क्या लैम्ब्डा लेयर जोड़ना है?
यह एक है? लैम्ब्डा फ़ंक्शन में चीज़ परत जिसमें लाइब्रेरी, निर्भरता आदि जैसे अतिरिक्त कोड शामिल हैं।
AWS लैम्ब्डा परतें आपके कार्यों के लिए बिल्डिंग ब्लॉक्स की तरह हैं। कल्पना करें किसी प्रोजेक्ट को पूरा करने के लिए आपको अतिरिक्त टूल (जैसे पांडास लाइब्रेरी) की आवश्यकता है। हर एक प्रोजेक्ट (जो स्थान और समय बर्बाद करता है) के अंदर उन सभी टूल को पैक करने के बजाय, AWS आपको टूल की परतें (लाइब्रेरी, निर्भरता, या साझा कोड) बनाने की अनुमति देता है। ये परतें आपके मुख्य फ़ंक्शन के बाहर बैठती हैं लेकिन जब आपके फ़ंक्शन को इनकी आवश्यकता होती है तो ये हमेशा उपलब्ध रहती हैं।
संक्षेप में, लैम्ब्डा लेयर्स आपकी मदद करती है:
मुख्य तर्क को अतिरिक्त लाइब्रेरी से अलग करके अपने कोड में जगह बचाएं।
कई लैम्ब्डा फ़ंक्शंस में लाइब्रेरीज़ और कोड का पुन: उपयोग करें।
अपने मुख्य फ़ंक्शन कोड को बदले बिना अपनी निर्भरता को आसानी से अपडेट या प्रबंधित करें।
लेयर्स को अपने लैम्ब्डा फ़ंक्शन से जुड़े एक अतिरिक्त स्टोरेज बॉक्स के रूप में सोचें, जिसमें आपके फ़ंक्शन को सुचारू रूप से काम करने के लिए आवश्यक सभी चीजें शामिल हैं। आप अपने मुख्य कोड को अव्यवस्थित किए बिना अपने फ़ंक्शन पर कई परतें जमा कर सकते हैं।
आपके लैम्ब्डा फ़ंक्शन में पांडा को सफलतापूर्वक चलाने में केवल 3 चरण लगते हैं
जैसा कि आप देख सकते हैं कि हमारे पास हमारे लैम्ब्डा फ़ंक्शन के नाम के तहत एक विकल्प लेयर्स है, मेरे मामले में, यह "import-pandas-function" है और लेयर्स की गिनती है 0
इस चरण को आगे दो चरणों में विभाजित किया गया है क्योंकि हमें एक पायथन स्क्रिप्ट जोड़ने की ज़रूरत है जिसमें कुछ पांडा कोड शामिल हैं और कोड सही ढंग से चल रहा है या नहीं यह सत्यापित करने के लिए JSON में एक परीक्षण ईवेंट लिखना होगा।
import json import pandas as pd def lambda_handler(event, context): data = event.get('data', []) df = pd.DataFrame(data) if not df.empty: mean_value = df['column_name'].mean() result = { "mean_value": mean_value, "data_shape": df.shape, "summary": df.describe().to_dict() } else: result = { "message": "Empty DataFrame" } # Return the response return { 'statusCode': 200, 'body': json.dumps(result) }
{ "data": [ {"column_name": 10, "other_column": "A"}, {"column_name": 20, "other_column": "B"}, {"column_name": 30, "other_column": "C"}, {"column_name": 40, "other_column": "D"} ] }
परीक्षण बटन दबाएं जो संभवतः आपको मिला है?त्रुटि:-
"errorMessage": "मॉड्यूल 'lambda_function' आयात करने में असमर्थ: 'pandas' नाम का कोई मॉड्यूल नहीं,
"errorType": "Runtime.ImportModuleError"
...
अपने लैम्ब्डा फ़ंक्शन तक नीचे स्क्रॉल करें, आप संभवतः पृष्ठ के अंत में "लेयर्स" अलग अनुभाग देख सकते हैं
"एक परत जोड़ें" पर क्लिक करने के बाद आप वह पृष्ठ देख सकते हैं जिसमें कुछ अनुभाग "फ़ंक्शन रनटाइम सेटिंग्स" और "एक परत चुनें" हैं
आप "एक परत चुनें" अनुभाग में तीन विकल्प देख सकते हैं, "एडब्ल्यूएस परतें" पर क्लिक करें।
AWS परतों का चयन करने के बाद आप "AWS परतों" के अंतर्गत ड्रॉपडाउन देख सकते हैं।
"AWS लेयर्स" के ड्रॉपडाउन में चयन करें -> AWSSDKPandas-Python312
"संस्करण" के ड्रॉपडाउन में चयन करें -> 13(सबसे अधिक एक का चयन करें)
"जोड़ें" बटन पर क्लिक करें
जब आपका पृष्ठ फ़ंक्शन अवलोकन की ओर निर्देशित होता है तो आप देख सकते हैं कि फ़ंक्शन नाम "आयात-पांडा-फ़ंक्शन" के नीचे परत जोड़ी गई है
आपको सफलतापूर्वक प्रतिक्रिया मिल गई है "statusCode": 200
{ "statusCode": 200, "body": "{\"mean_value\": 25.0, \"data_shape\": [4, 2], \"summary\": {\"column_name\": {\"count\": 4.0, \"mean\": 25.0, \"std\": 12.909944487358056, \"min\": 10.0, \"25%\": 17.5, \"50%\": 25.0, \"75%\": 32.5, \"max\": 40.0}}}" }
कोडिंग जारी रखें?
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3