निर्भरता को संभालना


पायथन में लिखे गए क्लाउड फ़ंक्शंस के लिए निर्भरताएँ निर्दिष्ट करने के दो तरीके हैं: पिप पैकेज मैनेजर की requirements.txt फ़ाइल का उपयोग करना या अपने फ़ंक्शन के साथ स्थानीय निर्भरताएँ पैकेजिंग करना।

Pipfile/Pipfile.lock मानक का उपयोग करने वाली निर्भरता विशिष्टता समर्थित नहीं है। आपके प्रोजेक्ट में ये फ़ाइलें शामिल नहीं होनी चाहिए.

पिप के साथ निर्भरताएँ निर्दिष्ट करना

पायथन में निर्भरता को पाइप के साथ प्रबंधित किया जाता है और requirements.txt नामक मेटाडेटा फ़ाइल में व्यक्त किया जाता है। यह फ़ाइल उसी निर्देशिका में होनी चाहिए जिसमें main.py फ़ाइल है जिसमें आपका फ़ंक्शन कोड है।

जब आप अपना फ़ंक्शन तैनात करते हैं, तो क्लाउड फ़ंक्शंस पाइप का उपयोग करके requirements.txt फ़ाइल में घोषित निर्भरता को डाउनलोड और इंस्टॉल करता है।

requirements.txt फ़ाइल में प्रति पैकेज एक पंक्ति होती है। प्रत्येक पंक्ति में पैकेज का नाम और वैकल्पिक रूप से अनुरोधित संस्करण शामिल है। अधिक विवरण के लिए, requirements.txt संदर्भ देखें।

निम्नलिखित एक उदाहरण requirements.txt फ़ाइल है:

requests==2.20.0
numpy

पैकेजिंग स्थानीय निर्भरताएँ

आप अपने फ़ंक्शन के साथ निर्भरताओं को पैकेज और तैनात भी कर सकते हैं। यह दृष्टिकोण उपयोगी है यदि आपकी निर्भरता पिप पैकेज मैनेजर के माध्यम से उपलब्ध नहीं है या यदि आपके क्लाउड फ़ंक्शंस वातावरण की इंटरनेट पहुंच प्रतिबंधित है।

उदाहरण के लिए, आप निम्न जैसी निर्देशिका संरचना का उपयोग कर सकते हैं:

myfunction/
├── main.py
└── localpackage/
    ├── __init__.py
    └── script.py

फिर आप निम्न import विवरण का उपयोग करके localpackage से हमेशा की तरह कोड आयात कर सकते हैं।

# Code in main.py
from localpackage import script

ध्यान दें कि यह दृष्टिकोण किसी भी setup.py फ़ाइल को नहीं चलाएगा। उन फ़ाइलों वाले पैकेज अभी भी बंडल किए जा सकते हैं, लेकिन क्लाउड फ़ंक्शंस पर सही ढंग से नहीं चल सकते हैं।