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ı kullanan bağımlılık spesifikasyonu desteklenmez. Projeniz bu dosyaları içermemelidir.
pip ile bağımlılıkları belirleme
Python'daki bağımlılıklar pip ile yönetilir ve requirements.txt
adlı bir meta veri dosyasında ifade edilir.
Bu dosya, işlev kodunuzu içeren main.py
dosyasıyla aynı dizinde olmalıdır.
İş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 bulunur. Daha fazla bilgi için requirements.txt
referansına bakın.
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 dayalı olduğundan,
functions-framework
öğesini özel kayıt defterinize yansıtın. Paketi herkese açık internetten yüklememek için yansıtılan functions-framework
dosyasını işlevinize bağımlılık olarak ekleyin.
Yerel bağımlılıkları paketleme
Ayrıca bağımlıları işlevinizle birlikte paketleyip dağıtabilirsiniz. Bu yaklaşım, bağımlılık öğeniz pip paket yöneticisi üzerinden kullanılamıyorsa veya Cloud Functions ortamınızın internet erişimi kısıtlanmışsa kullanışlıdır.
Ö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.