Pengembangan Lokal

Fungsi Cloud Run 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 pembatasan lokalitas data, dan deployment multi-cloud.

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 Menguji fungsi Cloud Run 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 fungsi Cloud Run itu sendiri.

Jika platform yang mematuhi pembatasan lokalitas data kompatibel dengan salah satu lapisan abstraksi fungsi Cloud Run, Anda dapat menjalankan fungsi secara langsung pada platform tersebut di atas salah satu lapisan ini.

Deployment multi-cloud

Deployment fungsi multi-cloud adalah pola yang sudah mapan untuk memitigasi risiko periode nonaktif di lingkungan yang sangat mendukung keandalan. Men-deploy fungsi ke lingkungan selain fungsi Cloud Run 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

Fungsi Cloud Run sendiri menggunakan arsitektur multi-lapisan, yang sebagian besar merupakan open source. Dengan komponen open source ini, Anda dapat menjalankan kode yang didesain untuk fungsi Cloud Run di platform lain.

Dua komponen arsitektur ini yang dapat Anda jalankan di luar infrastruktur fungsi Cloud Run adalah Functions Framework dan Functions Emulator. Dokumen ini menjelaskan tujuan setiap lapisan tersebut dan bagaimana lapisan tersebut saling terkait.

Diagram ini menunjukkan tata letak umum deployment fungsi di atas fungsi Cloud Run, Cloud Run, dan platform berbasis container lainnya:

Tata letak penggabungan fungsi: fungsi, framework fungsi, buildpack, platform host

Jenis peristiwa

Fungsi Cloud Run 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 fungsi Cloud Run untuk membatalkan marshal permintaan HTTP yang masuk ke pemanggilan fungsi khusus 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 mem-build-nya ke dalam container yang dapat dijalankan, yang kemudian dijalankan pada arsitektur berbasis container fungsi Cloud Run.

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.