Pengembangan Lokal
Cloud Functions mendukung beberapa metode untuk menjalankan fungsi Anda di luar lingkungan deployment standar. Hal ini sangat berguna untuk pengembangan iteratif, dan untuk situasi ketika Anda ingin menguji fungsi sebelum melakukan deployment.
Kasus penggunaan
Kemampuan untuk menjalankan fungsi tanpa men-deploy-nya dapat menyederhanakan pengujian lokal, kepatuhan terhadap batasan lokalitas data, dan deployment multicloud.
Pengujian lokal
Menguji fungsi dengan men-deploy ulang fungsi setelah setiap perubahan memerlukan waktu tunggu deployment setiap saat. Sebaliknya, menguji fungsi secara langsung di lingkungan pengembangan dapat mempersingkat siklus pengujian iteratif.
Untuk informasi selengkapnya tentang pengujian, lihat halaman Menguji Cloud Function sebelum deployment.
Pembatasan lokalitas data
Dalam beberapa kasus, peraturan atau kebijakan mungkin mengharuskan data disimpan dalam batas geografis, organisasi, atau jaringan tertentu yang mungkin tidak dapat diakses oleh Cloud Functions itu sendiri.
Jika platform yang mematuhi pembatasan lokalitas data kompatibel dengan salah satu lapisan abstraksi Cloud Functions, Anda dapat menjalankan fungsi secara langsung pada platform tersebut di atas salah satu lapisan ini.
Deployment multicloud
Deployment fungsi multicloud adalah pola yang ditetapkan untuk memitigasi risiko periode nonaktif di lingkungan yang membutuhkan keandalan. Men-deploy fungsi ke lingkungan selain Cloud Functions itu sendiri dapat mengurangi risiko aplikasi mengalami periode nonaktif yang tidak direncanakan.
Pilihan Penerapan
Sebelum Anda dapat menyiapkan lingkungan hosting fungsi Anda sendiri, ada dua pilihan utama yang perlu Anda buat:
- Lapisan abstraksi mana yang ingin Anda gunakan.
- Jenis fungsi yang akan Anda jalankan.
Lapisan abstraksi
Cloud Functions sendiri menggunakan arsitektur multi-lapisan, yang sebagian besar bersifat open source. Dengan komponen open source ini, Anda dapat menjalankan kode yang dirancang untuk Cloud Functions di platform lain.
Dua komponen arsitektur ini yang dapat Anda jalankan di luar infrastruktur Cloud Functions adalah Functions Framework dan emulator fungsi Google Cloud CLI. Dokumen ini menjelaskan tujuan setiap lapisan tersebut dan bagaimana lapisan tersebut saling terkait.
Diagram ini menunjukkan tata letak umum deployment fungsi di atas Cloud Functions, Cloud Run, dan platform berbasis container lainnya:
Jenis peristiwa
Cloud Functions memiliki dua jenis fungsi utama:
Fungsi HTTP dapat dipicu oleh permintaan HTTP arbitrer seperti webhook, sedangkan fungsi berbasis peristiwa menerima peristiwa yang dihasilkan oleh produk Google Cloud lainnya.
Memilih lapisan abstraksi
Anda dapat menjalankan fungsi secara lokal menggunakan Functions Framework atau Functions Emulator.
Functions Framework adalah sekumpulan library open source yang digunakan dalam Cloud Functions untuk melakukan unmarshal permintaan HTTP yang masuk ke pemanggilan fungsi spesifik bahasa. Anda dapat menggunakannya untuk mengonversi fungsi menjadi layanan HTTP yang dapat dijalankan secara lokal.
Functions Emulator menggunakan Buildpack Berbasis Cloud dan Docker untuk menggabungkan layanan HTTP yang dibuat oleh Functions Framework dan membangunnya ke dalam container yang dapat dijalankan, yang kemudian dijalankan pada arsitektur berbasis container Cloud Functions.
Kedua opsi tersebut memiliki kelebihan dan kekurangan:
- Lingkungan berbasis Functions Framework sering kali memiliki kebutuhan resource yang lebih rendah
- Functions Framework tidak memerlukan software containerization yang mendasarinya (seperti Docker)
- Lingkungan berbasis Functions Framework memerlukan infrastruktur bahasa yang mendasarinya (seperti pengelola paket dan runtime bahasa)
- Functions Emulator mencerminkan perintah produksi, seperti memanggil dan men-deploy.
- Functions Emulator menawarkan fidelitas tinggi terkait cara fungsi dijalankan saat di-deploy dalam produksi.
Menjalankan Functions Secara Lokal
Functions Framework dan Functions Emulator bekerja dengan meneruskan permintaan HTTP ke fungsi Anda.
Lihat Menjalankan Functions Framework untuk mengetahui informasi selengkapnya tentang cara menjalankan fungsi secara lokal menggunakan Functions Framework.
Baca Menjalankan Functions menggunakan Functions Emulator untuk mengetahui informasi lebih lanjut tentang cara menjalankan fungsi secara lokal menggunakan Functions Emulator.