2016-11-10 16 views
5

पर pymysql को कैसे स्थापित करें मैंने here और here देखा है क्योंकि मैं pymysql एडब्ल्यूएस लैम्ब्डा पर चलने के तरीके को कैसे काम कर रहा हूं, यह जानने का प्रयास कर रहा हूं। जिन उदाहरणों को मैंने अभी तक देखा है, वे बेहद जटिल हैं, और गिटहब ट्यूटोरियल के साथ मुझे आईएएम तक पहुंच मिली है, इससे पहले कि मैंने अनुमति त्रुटियों में भागना शुरू किया, मुझे नहीं पता था कि कैसे हल किया जाए।AWS lambda

सचमुच, मैं बस इतना करना चाहता हूं कि प्रीबिल्ट एडब्ल्यूएस लैम्ब्डा कंसोल टेम्पलेट के भीतर import pymysql पर कॉल करें।

यह एक साधारण समस्या की तरह प्रतीत होता है, लेकिन मुझे अपने लैम्ब्डा फ़ंक्शन के लिए नई निर्भरताओं को कैसे काम करना है, इस बारे में स्पष्ट, चरण-दर-चरण कार्य खोजने में कठिनाई हो रही है। आदर्श रूप से उदाहरण एडब्ल्यूएस सीएलआई के माध्यम से होगा, क्योंकि स्पष्ट रूप से एक कंसोल विकल्प है और ऐसा लगता है कि यह प्रक्रिया से बाहर कुछ सिरदर्द लेगा।

चीयर्स,

हारून

+0

नोट क्या अपने दूसरे लिंक कहते हैं: "। सरल परिदृश्य - अपने कस्टम कोड केवल एडब्ल्यूएस एसडीके पुस्तकालय की आवश्यकता है, तो आप एडब्ल्यूएस लैम्ब्डा कंसोल में इनलाइन संपादक का उपयोग कर सकते हैं" * * अन्यथा, आप नहीं कर सकते हैं कंसोल संपादक का प्रयोग करें। यह केवल सरल प्रोटोटाइप और "हैलो, दुनिया" प्रकार के कोड के लिए है। आपको तैनाती पैकेज की आवश्यकता है। –

+0

यह उत्तर है तो यह लगता है - तैनाती पैकेज को दूर करने का कोई तरीका नहीं है। ठीक है, तो धन्यवाद! एडब्ल्यूएस सीएलआई के बजाय जीयूआई के माध्यम से पैकेज को कम से कम अपलोड करने के लिए कंसोल का उपयोग करने के तरीके पर कोई सुझाव? – Aaron

+0

मैं मानता हूं कि पूरी प्रक्रिया पहली नज़र में बेहद घबराहट लगती है, लेकिन विचार मिलने के बाद यह बहुत सरल है। मेरा अनुभव अजगर के बजाय नोड के साथ है, लेकिन ऐसा लगता है कि @PankajChandankar का आपका समाधान है। आप वर्कस्टेशन निर्देशिका से पैकेज का "स्थानीय इंस्टॉल" करते हैं जिसमें आपका लैम्ब्डा कोड है, फिर उस निर्देशिका की संपूर्ण सामग्री को ज़िप करें (ज़िप कोड के "रूट" में अपने कोड के साथ)। –

उत्तर

6

मैं Redis अजगर पुस्तकालय के साथ इसी तरह की समस्या का सामना करना पड़ रहा था। मैं आपके दूसरे लिंक में उल्लिखित दस्तावेज निर्देशों का पालन करता हूं।

यहाँ आपके संदर्भ के लिए उदाहरण के स्निपेट है:

नई निर्देशिका बनाएं MyPythonLambda और एक ही में MyPythonLambda.py डाल दिया।

मान लें MyPythonLambda/MyPythonLambda.py हैंडलर युक्त मुख्य लैम्ब्डा है।

cd MyPythonLambda/ 
pip install redis -t . 
zip -r MyPythonLambda.zip * 

एस 3 या आपके स्थानीय फाइल सिस्टम से लैम्ब्डा निर्माण में ज़िप अपलोड/आयात करें।

मुझे लगता है कि आपको अपनी पाइथन mysql लाइब्रेरी युक्त उसी तरह ज़िप फ़ाइल बनाने की आवश्यकता है।

1

TheYoungSoul में fantastic YouTube example है जो इस चरण-दर-चरण को कैसे करें। एक बार जब मैंने इन निर्देशों का पालन किया तो यह करना बहुत आसान था।

कदम:

  1. दिनचर्या मैं लैम्ब्डा पर लागू करने और इस समारोह main.py कॉल करना चाहते हैं की एक स्थानीय रूप से परीक्षण योग्य संस्करण लिखें। main.py जो बुनियादी संरचना def lambda_handler(event, context): ...

  2. अपने तैनाती ज़िप फ़ाइल बनाने में requirements.txt साथ संयोजन के रूप में स्क्रिप्ट create_deployment.py, उसकी रेपो पर उपलब्ध है, का प्रयोग करें है इसके बारे में समारोह lambda_handler अंदर, है। ध्यान दें कि यदि आप मैक पर हैं और पहली बार may need to do this पर यह त्रुटियां हैं।

  3. एक बार जब आप एक स्थानीय रूप से परीक्षण योग्य उदाहरण चल रहा है, अपने लैम्ब्डा एडब्ल्यूएस पर खरोंच से लेखन समारोह समारोह और के बजाय एक .zip फ़ाइल अपलोड करने के लिए कंसोल मेनू विकल्प का चयन पैदा करते हैं।

  4. आरडीएस संसाधनों तक पहुंचने वाली कस्टम भूमिका बनाने के लिए सुनिश्चित करें और डीबी को रखना सुनिश्चित करें जिसे आप उसी वीपीसी समूह में कनेक्ट करना चाहते हैं। अपना फ़ंक्शन सेट करते समय, निर्दिष्ट करें कि आप अपने लैम्ब्डा फ़ंक्शन को वीपीसी एक्सेस प्राप्त करना चाहते हैं।

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