Panduan ini membandingkan pilihan Google Cloud terbaru dan asli untuk men-deploy fungsi. Halaman ini membantu pengguna yang sebelumnya membuat fungsi dengan Cloud Functions API dan sedang beralih ke Cloud Run Admin API. Halaman ini menjelaskan perbedaan utama di beberapa area, seperti konsep, konfigurasi, deployment, serta pemicu dan percobaan ulang.
Perbandingan
Ada dua versi fungsi Cloud Run:
Cloud Run Functions adalah versi terbaru fungsi, yang di-deploy sebagai layanan di Cloud Run. Grup dapat dibuat dengan salah satu cara berikut:
- Cloud Run Admin API
(Direkomendasikan): Fungsi yang dibuat dengan API ini (misalnya, dengan menggunakan
konsolGoogle Cloud ,
gcloud run, REST API, atau Terraform) dapat dikelola secara eksklusif menggunakan Cloud Run Admin API. - Cloud Functions v2 API: Fungsi yang dibuat dengan API ini (misalnya, dengan menggunakan
gcloud functions, REST API, atau Terraform) dapat dikelola dengan Cloud Run Admin API serta Cloud Functions v2 API. Saat menggunakan API ini, Anda menentukan pemicu saat men-deploy fungsi. Pelajari cara melepaskan fungsi v2 API agar dapat dikelola secara eksklusif menggunakan Cloud Run Admin API.
- Cloud Run Admin API
(Direkomendasikan): Fungsi yang dibuat dengan API ini (misalnya, dengan menggunakan
konsolGoogle Cloud ,
Cloud Run Functions (generasi ke-1), yang sebelumnya dikenal sebagai Cloud Functions (generasi ke-1), adalah versi asli fungsi dengan pemicu peristiwa, runtime, dan kemampuan konfigurasi terbatas. Pelajari cara mengupgrade fungsi generasi ke-1 ke Cloud Run.
Dengan men-deploy fungsi langsung ke Cloud Run, fungsi Anda akan otomatis dibangun sebagai container dan di-deploy sebagai layanan Cloud Run.
Konsep
Tabel berikut merangkum perbedaan konseptual untuk fungsi.
| Cloud Run Functions | Cloud Run Functions (generasi ke-1) | |
|---|---|---|
| Nama produk sebelumnya | Cloud Functions (generasi ke-2) | Cloud Functions (generasi ke-1) |
| Model resource | Fungsi adalah layanan Cloud Run yang di-deploy dari kode sumber | Fungsi di-deploy dari kode sumber |
| Terminologi jenis fungsi |
|
|
| URL HTTPS yang ditetapkan | run.appFungsi yang dibuat dengan Cloud Functions v2 API juga memiliki endpoint cloudfunctions.net. |
cloudfunctions.net |
| Registry image | Hanya Artifact Registry | Artifact Registry atau Container Registry (tidak digunakan lagi) |
| Peran IAM untuk deployment |
|
|
| Infrastruktur internal | Cloud Run | Internal Google |
| Model penetapan harga | Harga Cloud Run | Harga Cloud Run Functions (generasi ke-1) |
Konfigurasi
Cloud Run membangun fungsi ke dalam container dan men-deploy-nya sebagai layanan. Saat men-deploy fungsi ke Cloud Run, Anda memiliki akses dan kontrol penuh atas perilaku fungsi. Misalnya, Anda dapat mengaktifkan VPC Langsung, mengonfigurasi GPU, menggunakan pemasangan volume, dan lainnya.
Tabel berikut merangkum perbedaan konfigurasi untuk fungsi:
| Cloud Run Functions | Cloud Run Functions (generasi ke-1) | |
|---|---|---|
| Waktu tunggu permintaan |
|
|
| Ukuran instance | RAM hingga 16 GiB dengan 4 vCPU | RAM hingga 8 GB dengan 2 vCPU |
| Serentak | Hingga 1.000 permintaan serentak per instance fungsi | 1 permintaan serentak per instance fungsi |
| Pemisahan traffic | Didukung | Tidak didukung |
Deployment
Mulai Agustus 2024, Anda dapat menggunakan Cloud Run untuk men-deploy dan mengelola fungsi yang dibuat dengan Cloud Functions v2 API. Sebagai akibat dari perubahan ini:
- Metadata fungsi seperti ID runtime dan konfigurasi build disimpan dalam definisi layanan Cloud Run.
- Anda dapat mengedit fungsi dengan aman menggunakan Cloud Run Admin API.
- Anda dapat mengandalkan definisi layanan Cloud Run sebagai sumber kebenaran untuk fungsi Anda.
Namun, perhatikan bahwa fungsi yang dibuat dengan Cloud Run Admin API tidak dapat diubah dengan Cloud Functions API.
Tabel berikut merangkum perbedaan dalam cara Anda membuat, men-deploy, mengedit, dan mengelola fungsi:
| Cloud Run Functions | Cloud Run Functions (generasi ke-1) | |
|---|---|---|
| KonsolGoogle Cloud | Cloud Run | Cloud Run Functions (generasi ke-1) |
| Cloud SDK |
|
|
| REST API |
|
|
| Terraform |
|
Men-deploy fungsi yang dibuat dengan Cloud Functions v2 API
Seperti yang dijelaskan sebelumnya, Anda dapat menggunakan alat Cloud Run untuk men-deploy dan mengelola fungsi yang dibuat dengan Cloud Functions v2 API. Jika perlu men-deploy fungsi menggunakan Cloud Functions v2 API (misalnya, untuk kompatibilitas mundur), Anda dapat melakukannya sebagai berikut:
Pastikan Anda memiliki peran IAM Cloud Functions Developer atau peran yang mencakup izin yang sama. Lihat juga Konfigurasi tambahan untuk deployment.
Gunakan perintah
gcloud functions deployuntuk men-deploy fungsi:gcloud functions deploy YOUR_FUNCTION_NAME \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS...
Ganti kode berikut:
YOUR_FUNCTION_NAME: nama fungsi yang ingin Anda deploy. Nama fungsi harus dimulai dengan huruf yang diikuti dengan maksimal 62 huruf, angka, tanda hubung, atau garis bawah, dan harus diakhiri dengan huruf atau angka. Nama layanan Cloud Run yang dibuat untuk fungsi Anda akan mengganti garis bawah dengan tanda hubung dan huruf besar akan dikonversi menjadi huruf kecil. Misalnya,
Function_1akan diberi namafunction-1di Cloud Run.YOUR_REGION: Google Cloud Region tempat Anda ingin men-deploy fungsi Anda. Misalnya,
europe-west1.YOUR_RUNTIME: bahasa yang digunakan fungsi Anda. Untuk mengetahui daftar runtime yang didukung, lihat Dukungan runtime.
YOUR_SOURCE_LOCATION: lokasi kode sumber fungsi Anda.
YOUR_CODE_ENTRYPOINT: titik entri ke fungsi Anda dalam kode sumber. Titik entri ini adalah kode yang akan dieksekusi saat fungsi Anda berjalan. Nilai flag ini harus berupa nama fungsi atau nama class yang sepenuhnya memenuhi syarat, yang ada dalam kode sumber Anda.
Untuk referensi lengkap tentang perintah functions deploy dan flag-nya, lihat dokumentasi gcloud functions deploy.
Pemicu dan percobaan ulang
Tabel berikut membandingkan pemicu dan percobaan ulang untuk fungsi:
| Cloud Run Functions | Cloud Run Functions (generasi ke-1) | |
|---|---|---|
| Memicu dan memanggil fungsi | Untuk fungsi yang dibuat dengan Cloud Run Admin API, Anda
menentukan pemicu sebagai bagian dari men-deploy fungsi
di konsol Google Cloud atau setelah men-deploy fungsi saat menggunakan
gcloud CLI. Untuk fungsi yang dibuat dengan Cloud Functions v2 API, Anda menentukan pemicu sebagai bagian dari deployment fungsi. |
Anda menentukan pemicu sebagai bagian dari deployment fungsi. |
| Jenis peristiwa | Dukungan untuk jenis peristiwa apa pun yang didukung oleh Eventarc, termasuk lebih dari 90 sumber peristiwa melalui Cloud Audit Logs. | Dukungan langsung untuk peristiwa dari 7 sumber. |
| Upaya coba lagi | Untuk fungsi yang dibuat dengan Cloud Run Admin API, perbarui
kebijakan percobaan ulang
di Eventarc dan konfigurasi
topik pesan yang dihentikan pengirimannya
di Pub/Sub. Untuk fungsi yang dibuat dengan Cloud Functions v2 API, Anda menentukan percobaan ulang sebagai bagian dari deployment fungsi dengan tanda --retry.
|
Anda menentukan percobaan ulang sebagai bagian dari deployment fungsi dengan tanda
--retry. |
Melepaskan fungsi
Fungsi yang dibuat menggunakan Cloud Functions v2 API
(misalnya, dengan menggunakan gcloud functions, REST API, atau Terraform) dapat
dilepaskan dari lingkungan API yang ada. Setelah melepaskan fungsi, Anda hanya dapat mengelolanya menggunakan
Cloud Run Admin API. Anda mungkin ingin melakukannya jika workload Anda harus tetap berada dalam batas API run.googleapis.com untuk Assured Workloads, atau untuk memastikan bahwa workload Anda menggunakan SKU Cloud Run.
Lihat Mengelola fungsi untuk mempelajari lebih lanjut.
Langkah berikutnya
- Coba panduan memulai untuk men-deploy fungsi Cloud Run.