Cloud Functions için bağımlılıkları belirtmenin iki yolu vardır
Python: pip paket yöneticisinin
işlevinizle birlikte yerel bağımlılıkları requirements.txt
dosyası veya paketleyin.
Pipfile/Pipfile.lock standardının kullanıldığı bağımlılık belirtimi: desteklenmiyor. Projeniz bu dosyaları içermemelidir.
pip ile bağımlılıkları belirleme
Python'daki bağımlılıklar pip ile yönetilir ve bir meta veri dosyasında ifade edilir.
adı
requirements.txt
.
Bu dosya,main.py
fonksiyon kodunu ekleyebilirsiniz.
İşlevinizi dağıttığınızda veya yeniden dağıttığınızda Cloud Functions
uygulamanızın en yeni sürümünü indirmek ve yüklemek için pip kullanır.
bağımlılıkları requirements.txt
dosyasında belirtildiği şekilde tanımlar.
requirements.txt
dosyası, paket başına bir satır içerir. Her satırda
paket adı ve isteğe bağlı olarak istenen sürüm. Daha fazla bilgi için bkz.
requirements.txt
referans.
Derlemenizin bağımlılık sürümü değişikliklerinden etkilenmesini önlemek için bağımlılık paketlerinizi belirli bir sürüme sabitlemeyi düşünün.
Aşağıda örnek bir requirements.txt
dosyası gösterilmektedir:
functions-framework requests==2.20.0 numpy
Functions Framework, bağımlılıklarından bahsedeceğiz. Cloud Functions olmasına rağmen işlev oluşturulduğunda sizin adınıza yükler. bunu açıkça bir bağımlılık olarak eklemeniz gerekir.
Eğer
işlevi gizli bağımlılara bağlı olduğu için,
functions-framework
öğesini özel kayıt defterinize yansıtın. Yansıtılan
yüklemekten kaçınmak için işlevinize bağımlılık olarak functions-framework
paketinden çıkarıyoruz.
Yerel bağımlılıkları paketleme
Ayrıca bağımlıları işlevinizle birlikte paketleyip dağıtabilirsiniz. Bu yaklaşımınız, bağımlılığınız pip üzerinden mevcut değilse yararlıdır. veya Cloud Functions ortamınızın internet bağlantısı erişimi kısıtlandı.
Örneğin, bir dizin yapısı Örneğin:
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
Daha sonra, şunları kullanarak kodu her zamanki gibi localpackage
hizmetinden içe aktarabilirsiniz:
import
ifadesi.
# Code in main.py from localpackage import script
Bu yaklaşımın setup.py
dosyalarını çalıştırmayacağını unutmayın. İlgili paketler
dosyalar paketlenmeye devam edebilir, ancak Cloud Functions sisteminde doğru şekilde çalışmayabilir.