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


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.