Ada dua cara untuk menentukan dependensi untuk Cloud Functions yang ditulis dalam Python: menggunakan file requirements.txt
pengelola paket pip atau memaketkan dependensi lokal dengan fungsi Anda.
Spesifikasi dependensi yang menggunakan standar Pipfile/Pipfile.lock tidak didukung. Project Anda tidak boleh menyertakan file ini.
Menentukan dependensi dengan pip
Dependensi pada Python dikelola dengan pip dan dinyatakan dalam file metadata
yang disebut
requirements.txt
.
File ini harus berada di direktori yang sama dengan file main.py
yang berisi
kode fungsi Anda.
Saat Anda men-deploy atau men-deploy ulang fungsi, Cloud Functions menggunakan pip untuk mendownload dan menginstal versi terbaru dependensi Anda, seperti yang dideklarasikan dalam file requirements.txt
.
File requirements.txt
berisi satu baris per paket. Setiap baris berisi
nama paket, dan secara opsional, versi yang diminta. Untuk detail selengkapnya, lihat requirements.txt
referensi.
Agar build Anda tidak terpengaruh oleh perubahan versi dependensi, pertimbangkan untuk memasang pin pada paket dependensi ke versi tertentu.
Berikut adalah contoh file requirements.txt
:
functions-framework requests==2.20.0 numpy
Functions Framework adalah dependensi wajib untuk semua fungsi. Meskipun Cloud Functions menginstalnya untuk Anda saat fungsi tersebut dibuat, sebaiknya sertakan sebagai dependensi eksplisit agar lebih jelas.
Jika fungsi
Anda bergantung pada dependensi pribadi, sebaiknya
cerminkan functions-framework
ke registry pribadi Anda. Sertakan functions-framework
yang diduplikasi sebagai dependensi ke fungsi Anda untuk menghindari penginstalan
paket dari internet publik.
Mengemas dependensi lokal
Anda juga dapat mengemas dan men-deploy dependensi bersama fungsi Anda. Pendekatan ini berguna jika dependensi Anda tidak tersedia melalui pengelola paket pip atau jika akses internet lingkungan Cloud Functions Anda dibatasi.
Misalnya, Anda dapat menggunakan struktur direktori seperti berikut:
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
Kemudian, Anda dapat mengimpor kode seperti biasa dari localpackage
menggunakan pernyataan
import
berikut.
# Code in main.py from localpackage import script
Perhatikan bahwa pendekatan ini tidak akan menjalankan file setup.py
apa pun. Paket yang berisi file tersebut masih dapat dipaketkan, tetapi mungkin tidak berjalan dengan benar di Cloud Functions.