নির্ভরতা হ্যান্ডলিং


পাইথনে লেখা Cloud Functions জন্য নির্ভরতা নির্দিষ্ট করার দুটি উপায় রয়েছে: পিপ প্যাকেজ ম্যানেজারের requirements.txt ফাইল ব্যবহার করে অথবা আপনার ফাংশনের পাশাপাশি স্থানীয় নির্ভরতা প্যাকেজিং করে।

Pipfile/Pipfile.lock স্ট্যান্ডার্ড ব্যবহার করে নির্ভরতা স্পেসিফিকেশন সমর্থিত নয়। আপনার প্রকল্পে এই ফাইলগুলি অন্তর্ভুক্ত করা উচিত নয়।

পিপ ব্যবহার করে নির্ভরতা নির্দিষ্ট করা

পাইথনে নির্ভরতাগুলি pip দিয়ে পরিচালিত হয় এবং requirements.txt নামক একটি মেটাডেটা ফাইলে প্রকাশ করা হয়। এই ফাইলটি অবশ্যই main.py ফাইলের মতো একই ডিরেক্টরিতে থাকতে হবে যেখানে আপনার ফাংশন কোড রয়েছে।

যখন আপনি আপনার ফাংশন স্থাপন বা পুনঃস্থাপন করেন, তখন ক্লাউড ফাংশনগুলি requirements.txt ফাইলে ঘোষিত আপনার নির্ভরতার সর্বশেষ সংস্করণ ডাউনলোড এবং ইনস্টল করার জন্য pip ব্যবহার করে। requirements.txt ফাইলে প্রতিটি প্যাকেজের জন্য একটি লাইন থাকে। প্রতিটি লাইনে প্যাকেজের নাম এবং ঐচ্ছিকভাবে, অনুরোধকৃত সংস্করণ থাকে। আরও বিস্তারিত জানার জন্য, requirements.txt রেফারেন্স দেখুন।

নির্ভরতা সংস্করণ পরিবর্তনের ফলে আপনার বিল্ড যাতে প্রভাবিত না হয় তার জন্য, আপনার নির্ভরতা প্যাকেজগুলিকে একটি নির্দিষ্ট সংস্করণে পিন করার কথা বিবেচনা করুন।

requirements.txt ফাইলের একটি উদাহরণ নিচে দেওয়া হল:

functions-framework
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 ফাইল চালাবে না । এই ফাইলগুলি সহ প্যাকেজগুলি এখনও বান্ডিল করা যেতে পারে, তবে Cloud Functions এ সঠিকভাবে নাও চলতে পারে।