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


Python'da yazılan Cloud Functions için bağımlılıkları belirtmenin iki yolu vardır: pip paket yöneticisinin requirements.txt dosyasını kullanma veya yerel bağımlılıkları işlevinizle birlikte paketleme.

Pipfile/Pipfile.lock standardı kullanılarak bağımlılık belirtimi desteklenmez. Projenizde bu dosyalar bulunmamalıdır.

Bağımlılıkları pip ile belirtme

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, requirements.txt dosyasında belirtilen bağımlılıklarınızın en son sürümünü indirmek ve yüklemek için pip'i kullanır. 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üşünebilirsiniz.

Aşağıda bir örnek requirements.txt dosyası verilmiştir:

functions-framework
requests==2.20.0
numpy

Yerel bağımlılıkları paketleme

Ayrıca, bağımlılıkları işlevinizle birlikte paketleyip dağıtabilirsiniz. Bu yaklaşım, bağımlılığınız pip paket yöneticisi aracılığıyla kullanılamıyorsa veya Cloud Functions ortamınızın internet erişimi kısıtlanmışsa kullanışlıdır.

Örneğin, aşağıdaki gibi bir dizin yapısı kullanabilirsiniz:

myfunction/
├── main.py
└── localpackage/
    ├── __init__.py
    └── script.py

Ardından, aşağıdaki import ifadesini kullanarak kodu localpackage'dan her zamanki gibi içe aktarabilirsiniz.

# Code in main.py
from localpackage import script

Bu yaklaşımın setup.py dosyalarını çalıştırmayacağını unutmayın. Bu dosyaları içeren paketler yine de paketlenebilir ancak Cloud Functions üzerinde doğru şekilde çalışmayabilir.