Pengembangan Lokal

Cloud Run 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 pembatasan 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 mengetahui 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, dan/atau jaringan tertentu yang mungkin tidak dapat diakses oleh Cloud Run Functions itu sendiri.

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

Deployment multicloud

Deployment fungsi multicloud adalah pola yang sudah mapan untuk memitigasi risiko waktu non-operasional di lingkungan yang sangat mendukung keandalan. Men-deploy fungsi ke lingkungan selain Cloud Run Functions itu sendiri dapat mengurangi risiko aplikasi mengalami waktu non-operasional 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 Run Functions sendiri menggunakan arsitektur multi-lapisan, yang sebagian besar merupakan open source. Dengan komponen open source ini, Anda dapat menjalankan kode yang didesain untuk Cloud Run Functions di platform lain.

Dua komponen arsitektur ini yang dapat Anda jalankan di luar infrastruktur Cloud Run Functions 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 Cloud Run Functions, Cloud Run, dan platform berbasis container lainnya:

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

Jenis peristiwa

Cloud Run 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 Run Functions 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 membangunnya ke dalam container yang dapat dijalankan, yang kemudian dijalankan pada arsitektur berbasis container Cloud Run 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 Fungsi 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.

Lihat Menjalankan Functions menggunakan Functions Emulator untuk mengetahui informasi selengkapnya tentang cara menjalankan fungsi secara lokal menggunakan Functions Emulator.