دو راه برای تعیین وابستگیها برای Cloud Functions نوشته شده در پایتون وجود دارد: استفاده از فایل requirements.txt در مدیریت بسته pip یا بستهبندی وابستگیهای محلی در کنار تابع شما.
مشخصات وابستگی با استفاده از استاندارد Pipfile/Pipfile.lock پشتیبانی نمیشود. پروژه شما نباید شامل این فایلها باشد.
تعیین وابستگیها با pip
وابستگیها در پایتون با pip مدیریت میشوند و در یک فایل متادیتا به نام requirements.txt بیان میشوند. این فایل باید در همان دایرکتوری فایل main.py که کد تابع شما در آن قرار دارد، باشد.
وقتی تابع خود را مستقر یا مجدداً مستقر میکنید، Cloud Functions از pip برای دانلود و نصب آخرین نسخه از وابستگیهای شما، همانطور که در فایل requirements.txt اعلام شده است، استفاده میکند. فایل requirements.txt شامل یک خط برای هر بسته است. هر خط شامل نام بسته و به صورت اختیاری، نسخه درخواستی است. برای جزئیات بیشتر، به مرجع requirements.txt مراجعه کنید.
برای جلوگیری از تأثیر تغییرات نسخه وابستگیها بر ساخت شما، پین کردن بستههای وابستگی خود به یک نسخه خاص را در نظر بگیرید.
در زیر یک نمونه فایل requirements.txt آمده است:
functions-framework requests==2.20.0 numpy
بستهبندی وابستگیهای محلی
همچنین میتوانید وابستگیها را در کنار تابع خود بستهبندی و مستقر کنید. این رویکرد در صورتی مفید است که وابستگی شما از طریق مدیر بسته pip در دسترس نباشد یا دسترسی به اینترنت در محیط Cloud Functions شما محدود باشد.
برای مثال، میتوانید از ساختار دایرکتوری مانند زیر استفاده کنید:
myfunction/
├── main.py
└── localpackage/
├── __init__.py
└── script.py
سپس میتوانید کد را طبق معمول از localpackage با استفاده از دستور import زیر وارد کنید.
# Code in main.py from localpackage import script
توجه داشته باشید که این رویکرد هیچ فایل setup.py را اجرا نمیکند . بستههای حاوی آن فایلها همچنان میتوانند بستهبندی شوند، اما ممکن است روی Cloud Functions به درستی اجرا نشوند.