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 operasi lokal pengujian, kepatuhan terhadap pembatasan lokalitas data, dan multicloud deployment.

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 Uji fungsi Cloud Run sebelum deployment.

Pembatasan lokalitas data

Dalam beberapa kasus, peraturan atau kebijakan mungkin mengharuskan data untuk disimpan dalam batas geografis, organisasi, atau jaringan tertentu yang mungkin tidak dapat diakses oleh fungsi Cloud Run itu sendiri.

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

Deployment multicloud

Deployment fungsi multicloud adalah pola yang ditetapkan untuk memitigasi periode nonaktif risiko di lingkungan yang sangat penting untuk keandalan. Men-deploy fungsi ke lingkungan selain fungsi Cloud Run itu sendiri akan 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 adalah open source. Komponen {i>open source<i} ini memungkinkan Anda untuk menjalankan kode yang dirancang untuk fungsi Cloud Run di platform lain.

Dua komponen arsitektur ini yang dapat Anda jalankan di luar infrastruktur fungsi Cloud Run adalah Framework Fungsi dan Emulator Fungsi. 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.

Framework Functions adalah kumpulan open source library yang digunakan dalam fungsi Cloud Run untuk mengurai permintaan HTTP yang masuk ke pemanggilan fungsi khusus bahasa. Anda dapat menggunakannya untuk mengonversi fungsi menjadi layanan HTTP yang dapat dijalankan secara lokal.

Emulator Functions menggunakan Buildpacks Berbasis Cloud dan Docker untuk menggabungkan layanan HTTP yang dibuat oleh Framework Functions dan membangunnya menjadi container, yang kemudian berjalan di 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.