Bağımlılıkları yönetme


Cloud Functions'da bağımlılıkları belirtmenin iki yolu vardır: Python: pip paket yöneticisinin kullandığı 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 belirtilen ş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, 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ı paketlenebilir ancak Cloud Functions'da doğru şekilde çalışmayabilir.