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


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

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

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

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

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

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

নিম্নলিখিত একটি উদাহরণ requirements.txt ফাইল:

functions-framework
requests==2.20.0
numpy

ফাংশন ফ্রেমওয়ার্ক সমস্ত ফাংশনের জন্য প্রয়োজনীয় নির্ভরতা। যদিও Cloud Functions আপনার পক্ষ থেকে এটি ইনস্টল করে যখন ফাংশনটি তৈরি করা হয়, আমরা সুপারিশ করি যে আপনি এটিকে স্পষ্টতার জন্য একটি সুস্পষ্ট নির্ভরতা হিসাবে অন্তর্ভুক্ত করুন৷

যদি আপনার ফাংশন ব্যক্তিগত নির্ভরতার উপর নির্ভর করে, আমরা সুপারিশ করি যে আপনি আপনার ব্যক্তিগত রেজিস্ট্রিতে functions-framework মিরর করুন। পাবলিক ইন্টারনেট থেকে প্যাকেজ ইনস্টল করা এড়াতে আপনার ফাংশনের উপর নির্ভরতা হিসাবে মিরর করা functions-framework অন্তর্ভুক্ত করুন।

স্থানীয় নির্ভরতা প্যাকেজিং

আপনি আপনার ফাংশনের পাশাপাশি নির্ভরতা প্যাকেজ এবং স্থাপন করতে পারেন। পিপ প্যাকেজ ম্যানেজারের মাধ্যমে আপনার নির্ভরতা উপলব্ধ না হলে বা আপনার Cloud Functions পরিবেশের ইন্টারনেট অ্যাক্সেস সীমাবদ্ধ থাকলে এই পদ্ধতিটি কার্যকর।

উদাহরণস্বরূপ, আপনি একটি ডিরেক্টরি কাঠামো ব্যবহার করতে পারেন যেমন নিম্নলিখিত:

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

তারপরে আপনি নিম্নলিখিত import বিবৃতি ব্যবহার করে localpackage থেকে যথারীতি কোড আমদানি করতে পারেন।

# Code in main.py
from localpackage import script

মনে রাখবেন যে এই পদ্ধতিটি কোনো setup.py ফাইল চালাবে না । সেই ফাইলগুলির সাথে প্যাকেজগুলি এখনও বান্ডিল করা যেতে পারে, কিন্তু Cloud Functions সঠিকভাবে নাও চলতে পারে৷