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.