ID region
REGION_ID adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.
Pelajari ID region lebih lanjut.
Panduan ini menyediakan pengantar Cloud Run bagi pengguna yang sudah memahami App Engine. Panduan ini membahas beberapa kesamaan dan perbedaan utama antara platform Serverless untuk membantu mempersiapkan migrasi dari lingkungan standar App Engine atau lingkungan fleksibel App Engine.
Ringkasan
Cloud Run adalah evolusi terbaru dari Google Cloud Serverless, yang dikembangkan berdasarkan pengalaman menjalankan App Engine selama lebih dari satu dekade. Cloud Run berjalan pada banyak infrastruktur yang sama dengan lingkungan standar App Engine, sehingga ada banyak kesamaan di antara kedua platform ini.
Cloud Run dirancang untuk meningkatkan pengalaman App Engine, yang menggabungkan banyak fitur terbaik dari lingkungan standar App Engine dan lingkungan fleksibel App Engine. Layanan Cloud Run dapat menangani beban kerja yang sama dengan layanan App Engine, tetapi Cloud Run menawarkan fleksibilitas yang lebih besar kepada pelanggan dalam mengimplementasikan layanan ini. Fleksibilitas ini, bersama dengan peningkatan integrasi dengan layanan Google Cloud dan pihak ketiga, juga memungkinkan Cloud Run menangani workload yang tidak dapat berjalan di App Engine.
Ringkasan perbandingan
Meskipun ada banyak kesamaan dan perbedaan antara App Engine dan Cloud Run, ringkasan ini berfokus pada area yang paling relevan bagi pelanggan App Engine yang memulai Cloud Run.
| Lingkungan standar App Engine | Lingkungan fleksibel App Engine | Cloud Run | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Terminologi | Aplikasi | T/A | |||||||||||||||||||
| Layanan | Layanan | ||||||||||||||||||||
| Versi | Revisi | ||||||||||||||||||||
Endpoint URL |
|||||||||||||||||||||
| URL aplikasi
(layanan default)
|
https://PROJECT_ID.REGION_ID.r.appspot.com
|
T/A | |||||||||||||||||||
| URL Layanan |
https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com
|
|
|||||||||||||||||||
| URL Versi/Revisi |
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
|
|
|||||||||||||||||||
Penskalaan |
|||||||||||||||||||||
| Penskalaan otomatis | Ya | Ya | Ya | ||||||||||||||||||
| Penskalaan manual | Ya | Ya | Ya | ||||||||||||||||||
| Penskalaan hingga nol | Ya | Tidak | Ya | ||||||||||||||||||
| Warmup request | Dapat Dikonfigurasi | Tidak | Otomatis | ||||||||||||||||||
| Waktu tunggu instance tidak ada aktivitas (setelah menyelesaikan permintaan terakhir) | Hingga 15 menit | Bergantung pada setelan Penagihan. Gunakan Penagihan berbasis instance untuk mengemulasi perilaku App Engine | |||||||||||||||||||
| Waktu tunggu permintaan |
|
60 menit | Dapat dikonfigurasi hingga 60 menit (default: 5 menit) | ||||||||||||||||||
Deployment |
|||||||||||||||||||||
| Dari source | Ya | Ya | |||||||||||||||||||
| Image container | Tidak | Ya (runtime kustom) | Ya | ||||||||||||||||||
| Container file bantuan | Tidak | Ya. Sidecar berjalan bersama container utama, yang melayani permintaan web. | |||||||||||||||||||
| Health check | Otomatis. App Engine melakukan pemeriksaan kesiapan dan keaktifan pada instance Anda. | Dapat dikonfigurasi. Anda menentukan pemeriksaan startup dan keaktifan secara eksplisit dalam konfigurasi resource Cloud Run, dan menentukan detail seperti jenis pemeriksaan (TCP, HTTP, dan gRPC), jalur, port, penundaan awal, periode, waktu tunggu, nilai minimum keberhasilan, dan nilai minimum kegagalan. | |||||||||||||||||||
Resource komputasi |
|||||||||||||||||||||
| vCPU |
|
Hingga 80 vCPU | Hingga 8 vCPU | ||||||||||||||||||
| Memori | Hingga 6,5 GB per vCPU | Hingga 32 GB | |||||||||||||||||||
| GPU | Tidak | Ya. Anda dapat mengonfigurasi satu GPU per instance Cloud Run. | |||||||||||||||||||
| Pemasangan volume | Tidak | Ya. Anda dapat memasang bucket Cloud Storage langsung ke sistem file container. | |||||||||||||||||||
Model penetapan harga |
|||||||||||||||||||||
| Biaya per permintaan | Tidak |
Tidak, saat menggunakan penagihan berbasis instance. Ya, saat menggunakan penagihan berbasis permintaan. |
|||||||||||||||||||
| Instance minimum tanpa aktivitas | Biaya yang sama seperti instance aktif | Biaya yang lebih rendah untuk instance minimum tanpa aktivitas (lihat Waktu instance container yang dapat ditagih) | |||||||||||||||||||
| Diskon abonemen (CUD) | Tidak | Ya | |||||||||||||||||||
| Penagihan berbasis instance (instance biaya per jam) | Instance F4/B4: $0,2 |
|
|
||||||||||||||||||
Keamanan |
|||||||||||||||||||||
| Setelan traffic masuk | Ya | Ya | Ya | ||||||||||||||||||
| Peran Invoker | Tidak | Ya | |||||||||||||||||||
| IAP | Ya | Ya | Ya | ||||||||||||||||||
| Firewall | Ya | Ya | Mengonfigurasi menggunakan Google Cloud Armor | ||||||||||||||||||
| Secret Manager | Ya, dengan Library Klien Cloud. | Ya. Anda dapat memasang setiap secret sebagai volume atau meneruskan secret menggunakan variabel lingkungan. | |||||||||||||||||||
Konektivitas |
|||||||||||||||||||||
| Domain kustom | Ya | Ya | Ya | ||||||||||||||||||
| Konektivitas VPC (termasuk VPC Bersama) | Ya | T/A | Ya | ||||||||||||||||||
| Setelan traffic keluar VPC | Ya | T/A | Ya | ||||||||||||||||||
| Load balancing multi-region | Tidak | Ya | |||||||||||||||||||
| Streaming server | Tidak | Ya | |||||||||||||||||||
Mengakses layanan Google Cloud |
|||||||||||||||||||||
| Cloud SQL | Ya | Ya | Ya | ||||||||||||||||||
| Library Klien Cloud | Jika menggunakan Library Klien Cloud di App Engine, Anda tidak perlu mengubah apa pun saat bermigrasi ke Cloud Run. Library klien ini berfungsi di mana saja, sehingga aplikasi Anda menjadi lebih portabel. | ||||||||||||||||||||
| Paket layanan lama App Engine | Ya (khusus Java, Python, Go, PHP) | Tidak | Tidak | ||||||||||||||||||
Model resource
Model resource Cloud Run sangat mirip dengan App Engine, tetapi terdapat beberapa perbedaan utama:
- Cloud Run tidak memiliki resource Aplikasi tingkat atas, atau layanan
defaultyang sesuai. - Layanan Cloud Run dalam project yang sama dapat di-deploy ke region yang berbeda. Di App Engine, semua layanan dalam project berada di region yang sama.
- Cloud Run menggunakan istilah Revisi, bukan Versi, agar selaras dengan Model resource Knative.
- Nama revisi Cloud Run menggunakan format:
SERVICE_NAME-REVISION_SUFFIX, denganREVISION_SUFFIXdibuat secara otomatis, atau ditetapkan menggunakan tanda deployment--revision-suffix=REVISION_SUFFIX. - Revisi Cloud Run tidak dapat diubah, artinya Anda tidak dapat menggunakan kembali nama seperti yang dapat Anda lakukan pada versi App Engine (menggunakan tanda deployment
--version=VERSION_ID). - URL layanan Cloud Run didasarkan pada ID layanan yang dibuat secara otomatis saat deployment pertama layanan. ID Layanan menggunakan format:
SERVICE_NAME-<auto-generated identifier>. ID Layanan bersifat unik, dan tidak berubah selama masa aktif layanan. - Di Cloud Run, hanya URL layanan (
SERVICE_IDENTIFIER.run.appdanhttps://SERVICE_NAME-PROJECT_NUMBER.REGION.run.app) yang ditampilkan secara default. Untuk mengatasi revisi tertentu, Anda harus mengonfigurasi tag traffic. Di App Engine, URL layanan dan versi ditampilkan secara otomatis.
Deployment dan konfigurasi
Di App Engine, sebagian besar konfigurasi dilakukan di app.yaml yang disertakan di setiap deployment. Kemudahan ini menimbulkan biaya, karena, meskipun beberapa setelan dapat diperbarui menggunakan Admin API, sebagian besar perubahan memerlukan deployment ulang layanan.
Meskipun Cloud Run memiliki file konfigurasi service.yaml, file tersebut tidak digunakan dengan cara yang sama seperti app.yaml. service.yaml Cloud Run tidak dapat digunakan saat men-deploy dari sumber, karena salah satu elemen yang diperlukan adalah jalur ke image container akhir. Selain itu, service.yaml sesuai dengan spesifikasi Knative, dan mungkin sulit dibaca bagi mereka yang tidak terbiasa dengan file konfigurasi gaya Kubernetes. Untuk mengetahui informasi selengkapnya tentang cara menggunakan service.yaml untuk mengelola konfigurasi, lihat dokumentasi Cloud Run.
Bagi pelanggan App Engine yang baru mulai menggunakan Cloud Run, penggunaan tanda deployment gcloud CLI lebih selaras dengan pengelolaan konfigurasi saat deployment App Engine.
Untuk menetapkan konfigurasi saat men-deploy kode baru di Cloud Run, gunakan flag gcloud run deploy:
gcloud run deploy SERVICE_NAME \
--cpu CPU \
--memory MEMORY \
--concurrency CONCURRENCY
Meskipun Anda tidak diharuskan menggunakan tanda konfigurasi pada setiap deployment (lihat Mengelola konfigurasi), Anda dapat melakukannya untuk membantu menyederhanakan pengelolaan konfigurasi.
Di Cloud Run, Anda juga dapat memperbarui konfigurasi tanpa men-deploy ulang kode sumber menggunakan gcloud run services update:
gcloud run services update SERVICE_NAME \
--cpu CPU \
--memory MEMORY \
--concurrency CONCURRENCY
Karena revisi Cloud Run tidak dapat diubah, perintah ini akan membuat revisi baru dengan konfigurasi yang diperbarui, tetapi akan menggunakan image container yang sama dengan revisi yang ada.
Mengelola konfigurasi
Untuk deployment App Engine, semua setelan harus disediakan untuk setiap deployment, dan setiap setelan yang tidak disediakan akan diberi nilai default. Misalnya, ambil App Engine service-a, dengan versi yang menggunakan file app.yaml dalam tabel berikut:
| App Engine service-a version1 | App Engine service-a version2 |
|---|---|
| app.yaml | |
runtime: python39 service: service-a instance_class: F4 |
runtime: python39 service: service-a |
| Konfigurasi yang diterapkan | |
runtime: python39 service: service-a instance_class: F4 default values: |
runtime: python39 service: service-a default values: |
version1 dikonfigurasi dengan instance_class: F4, sedangkan version2, yang tidak memberikan nilai untuk instance_class, dikonfigurasi dengan instance_class: F1 default.
Untuk Cloud Run, semua setelan konfigurasi yang disediakan akan diterapkan, tetapi yang tidak disediakan akan dipertahankan nilainya yang ada. Anda hanya perlu memberikan nilai untuk setelan yang akan diubah. Contoh:
| Cloud Run service-a revision1 | Cloud Run service-a revision2 |
|---|---|
| Perintah deployment | |
gcloud run deploy service-a \ --cpu=4 |
gcloud run deploy service-a |
| Konfigurasi yang diterapkan | |
service: service-a vCPUs: 4 default values: |
service: service-a vCPUs: 4 default values: |
Di App Engine, deployment tanpa setelan konfigurasi akan membuat versi menggunakan semua setelan default. Di Cloud Run, men-deploy tanpa setelan konfigurasi akan membuat revisi menggunakan setelan konfigurasi yang sama dengan revisi sebelumnya. Untuk revisi pertama layanan Cloud Run, men-deploy tanpa setelan konfigurasi akan membuat revisi menggunakan semua setelan default.
Default konfigurasi
| Setelan konfigurasi | Lingkungan standar App Engine | Lingkungan fleksibel App Engine | Cloud Run |
|---|---|---|---|
| Resource komputasi | F1 | 1 vCPU, .6GB | 1 vCPU, 512MB |
| Konkurensi maksimum (permintaan) | 10 | Tidak ada | 80 |
| Waktu tunggu permintaan |
|
60 menit | 5 menit |
| Target penggunaan CPU | 60% | 50% | 60% |
| Instance maksimum | Tidak ada | 20 | 100 |
| Instance minimum | 0 | 2 | 0 |
Entrypoint
Saat melakukan deployment dari sumber, App Engine membaca perintah entrypoint dari atribut entrypoint di app.yaml. Jika tidak ada titik entri yang diberikan, setelan default khusus runtime akan digunakan. Cloud Run menggunakan buildpack Google Cloud saat men-deploy dari sumber, dan beberapa bahasa tidak memiliki entrypoint default. Artinya, Anda harus menyediakannya atau build akan gagal. Misalnya, buildpack Python memerlukan Procfile, atau menentukan variabel lingkungan build GOOGLE_ENTRYPOINT.
Tinjau dokumentasi buildpack untuk mengetahui persyaratan konfigurasi khusus bahasa.
Health check
Di App Engine, health check sebagian besar bersifat otomatis dan dikelola oleh platform. App Engine melakukan pemeriksaan keaktifan dan kesiapan untuk menentukan apakah instance beroperasi dan siap melayani traffic. Jika instance terus-menerus gagal dalam pemeriksaan otomatis, App Engine akan menghentikan instance tersebut, dan menggantinya dengan instance baru untuk memastikan kelangsungan layanan.
Cloud Run menawarkan kontrol yang lebih terperinci dengan pemeriksaan keaktifan dan startup yang dapat dikonfigurasi. Pemeriksaan ini memungkinkan Anda menentukan instance yang responsif, yang sangat penting untuk microservice yang kompleks.
Di Cloud Run, Anda dapat mengonfigurasi pemeriksaan berikut:
Pemeriksaan startup untuk menentukan kapan container telah dimulai dan siap menyalurkan traffic. Saat Anda mengonfigurasi pemeriksaan startup, pemeriksaan ini akan menonaktifkan pemeriksaan keaktifan hingga startup berhasil, sehingga memastikan pemeriksaan keaktifan tidak mengganggu startup aplikasi Anda.
Pemeriksaan keaktifan untuk menentukan kapan harus memulai ulang container. Misalnya, pemeriksaan keaktifan dapat mendeteksi deadlock saat aplikasi berjalan, tetapi tidak dapat membuat progres. Memulai ulang container dalam status seperti itu memastikan bahwa aplikasi Anda tersedia meskipun ada bug.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi health check penampung untuk layanan.
Penskalaan
Meskipun Cloud Run dan lingkungan standar App Engine memiliki infrastruktur penskalaan yang serupa, Cloud Run disederhanakan untuk penskalaan yang lebih cepat dan kemampuan penskalaan hingga nol. Hal ini akan menghasilkan lebih sedikit setelan yang dapat dikonfigurasi. Penyederhanaan ini membatasi setelan yang dapat dikonfigurasi menjadi:
- Konkurensi maksimum
- Instance Maksimum dan minimum
Untuk instance Cloud Run, pemakaian CPU target tidak dapat dikonfigurasi; nilainya ditetapkan pada 60%. Untuk mengetahui detail selengkapnya, lihat Tentang penskalaan otomatis instance di layanan Cloud Run.
Lingkungan fleksibel App Engine menggunakan Autoscaler Compute Engine, sehingga memiliki karakteristik penskalaan yang sangat berbeda dengan lingkungan standar App Engine dan Cloud Run.
Memigrasikan kontrol penskalaan dari App Engine ke Cloud Run
Bagian ini menjelaskan cara memetakan konfigurasi penskalaan App Engine yang ada ke Cloud Run.
Instance minimum (pemanasan)
Pertahankan jumlah minimum instance tetap aktif untuk menangani traffic dasar dan menghindari cold start.
| Lingkungan konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | min_instances: N |
| Lingkungan fleksibel App Engine | automatic_scaling:min_num_instances: N |
| Cloud Run | Tingkat layanan: scaling.min_instance_count: N Tingkat revisi: template.scaling.min_instance_count: N |
Strategi migrasi: Tetapkan jumlah minimum instance untuk pemanasan di tingkat layanan. Jika Anda mengarahkan traffic ke revisi tertentu, setelan tingkat revisi akan menggantikan default tingkat layanan. Gunakan setelan ini untuk menguji revisi baru dengan jumlah instance minimum yang berbeda sebelum mempromosikannya ke produksi.
Instance maksimum
Tetapkan batas ketat pada jumlah total instance untuk mengontrol biaya dan melindungi dependensi downstream.
| Lingkungan konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | max_instances: N |
| Lingkungan fleksibel App Engine | automatic_scaling:max_num_instances: N |
| Cloud Run | Tingkat layanan: scaling.max_instance_count: N Tingkat revisi: template.scaling.max_instance_count: N |
Strategi migrasi: Tetapkan batas global di tingkat layanan. Cloud Run menerapkan setelan tingkat layanan dan tingkat revisi yang lebih rendah. Untuk mengetahui informasi selengkapnya, lihat Menetapkan instance maksimum untuk layanan.
Serentak
Tentukan kapasitas permintaan satu instance.
| Lingkungan konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | max_concurrent_requests: N |
| Lingkungan fleksibel App Engine | automatic_scaling:target_concurrent_requests: N |
| Cloud Run | template.maxInstanceRequestConcurrency: N |
Strategi migrasi: Ikuti salah satu dari dua strategi migrasi:
Mulai dengan kapasitas default instance Cloud Run sebesar 80, dan lakukan pengujian beban untuk menemukan batas konkurensi yang stabil untuk aplikasi Anda di Cloud Run. Menyesuaikan nilai ini adalah cara efektif untuk mengoptimalkan performa dan biaya di Cloud Run. Sesuaikan nilai ke bawah dari 80 berdasarkan hasil pengujian Anda. Untuk mengetahui informasi selengkapnya, lihat Menetapkan permintaan serentak maksimum per instance.
Gunakan nilai konfigurasi yang ada di lingkungan standar App Engine, yang secara default adalah 10 permintaan serentak per instance. Ini adalah opsi yang aman, karena merupakan konfigurasi yang diketahui dan berfungsi untuk aplikasi Anda. Namun, hal ini dapat menyebabkan kurangnya pemanfaatan yang signifikan pada instance Cloud Run dan berpotensi menimbulkan biaya yang lebih tinggi, karena autoscaler membuat lebih banyak instance daripada yang diperlukan untuk menangani beban.
Pemakaian CPU
Menskalakan saat beban CPU melampaui nilai minimum tertentu.
| Lingkungan konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | target_cpu_utilization: 0.X |
| Lingkungan fleksibel App Engine | automatic_scaling:cpu_utilization:target_utilization: N |
| Cloud Run | Tidak ada padanan langsung (ditetapkan sekitar 60%) |
Strategi migrasi: Anda tidak dapat mengonfigurasi nilai ini. Penskala otomatis Cloud Run mempertahankan pemakaian CPU ~60% pada instance aktif. Tidak seperti App Engine, Cloud Run hanya mengalokasikan CPU selama pemrosesan permintaan dan melakukan throttling ke nol jika tidak. Di lingkungan standar App Engine, terlepas dari jenis penskalaan yang Anda konfigurasi, App Engine memastikan bahwa CPU tersedia terus-menerus untuk instance Anda.
Jika aplikasi Anda melakukan pekerjaan latar belakang di antara permintaan, seperti menggunakan thread latar belakang dalam penskalaan dasar atau manual, konfigurasi penagihan berbasis instance di Cloud Run untuk menghindari penangguhan tugas pemrosesan latar belakang Anda.
Throughput permintaan
Lakukan penskalaan berdasarkan throughput permintaan saat aplikasi Anda mencapai batas serentak.
| Lingkungan konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | target_throughput_utilization: 0.X |
| Lingkungan fleksibel App Engine | Tidak tersedia |
| Cloud Run | Pertimbangkan untuk menyesuaikan setelan template.maxInstanceRequestConcurrency |
Strategi migrasi: Autoscaler Cloud Run mencoba mempertahankan
jumlah permintaan serentak per instance pada
60% dari nilai maxInstanceRequestConcurrency. Saat menetapkan nilai ini, Anda secara implisit menentukan throughput target yang memicu peristiwa penskalaan.
Latensi
Tentukan rentang waktu tunggu pengguna yang memicu penskalaan. App Engine sebagian reaktif terhadap antrean permintaan.
| Lingkungan Konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | min_pending_latency dan max_pending_latency |
| Lingkungan fleksibel App Engine | Tidak tersedia |
| Cloud Run | Tidak ada padanan langsung |
Strategi migrasi: Cloud Run melakukan penskalaan otomatis sebelum permintaan mulai
mengantre dan latensi meningkat. Jika terjadi lonjakan latensi, pertimbangkan untuk menyesuaikan nilai template.maxInstanceRequestConcurrency
untuk memastikan penskalaan horizontal yang lebih cepat.
Instance tidak ada aktivitas
Tujuan: Di App Engine, setelan instance tidak ada aktivitas mengontrol kumpulan instance tidak ada aktivitas yang telah di-warm-up sebelumnya, yang menyerap lonjakan traffic dan mengontrol biaya.
| Lingkungan Konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | min_idle_instances: N atau max_idle_instances: N |
| Lingkungan fleksibel App Engine | Tidak tersedia |
| Cloud Run | Tidak ada padanan langsung |
Strategi migrasi: Anda tidak dapat mengonfigurasi instance dalam kondisi tidak ada aktivitas minimum atau maksimum yang terpisah di Cloud Run. Untuk menjaga instance tetap aktif dan siap untuk
traffic langsung serta mengurangi cold start di Cloud Run, gunakan setelan scaling.min_instance_count, yang memastikan jumlah minimum
container yang ditentukan selalu berjalan. Untuk mengetahui informasi selengkapnya, lihat Tentang penskalaan otomatis instance di layanan Cloud Run.
Waktu tunggu instance tidak ada aktivitas
Di App Engine, instance tanpa aktivitas tetap aktif selama sekitar 15 menit setelah permintaan terakhir. Cloud Run mengontrol perilaku ini menggunakan setelan Penagihan.
Untuk mendapatkan perilaku penagihan yang serupa dengan App Engine, di mana CPU dialokasikan di luar pemrosesan permintaan, gunakan penagihan berbasis instance di Cloud Run.
Atau, gunakan penagihan berbasis permintaan agar CPU hanya dialokasikan selama pemrosesan permintaan. Dengan setelan ini, instance akan tetap aktif hingga 15 menit setelah permintaan terakhir, tetapi CPU akan di-throttle selama waktu tidak aktif tersebut.
Penskalaan dasar
| Lingkungan Konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | basic_scaling: max_instances: N |
| Lingkungan fleksibel App Engine | Tidak tersedia |
| Cloud Run | Penskalaan Otomatis Default. scaling.min_instance_count: 0 scaling.max_instance_count: N |
Saat Anda mengonfigurasi setelan basic_scaling di lingkungan standar App Engine, setelan ini akan membuat instance saat menerima permintaan, dan menskalakan ke nol setelah periode tidak aktif. Anda dapat mereplikasi perilaku ini di Cloud Run menggunakan penskalaan otomatis dengan menyetel min-instances ke 0.
Penskalaan manual
Jalankan sejumlah instance tetap dan nonaktifkan penskalaan otomatis.
| Lingkungan Konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | manual_scaling: instances: N |
| Lingkungan fleksibel App Engine | manual_scaling: instances: N |
| Cloud Run | scalingMode: MANUALmanualInstanceCount: N |
Strategi migrasi: Ada pemetaan langsung di Cloud Run untuk penskalaan manual. Tetapkan mode penskalaan ke MANUAL di tingkat layanan di
Cloud Run, dan tentukan jumlah instance yang tepat untuk dijalankan menggunakan
manualInstanceCount. Tindakan ini memiliki efek yang sama dengan menonaktifkan penskalaan otomatis sepenuhnya. Untuk mengetahui informasi selengkapnya, lihat Penskalaan manual di Cloud Run.
Periode tunggu
Konfigurasi periode tunggu setelah peristiwa penskalaan sebelum peristiwa lain terjadi.
| Lingkungan Konfigurasi | Setelan |
|---|---|
| Lingkungan standar App Engine | Tidak tersedia |
| Lingkungan fleksibel App Engine | automatic_scaling:cool_down_period_sec: N |
| Cloud Run | Tidak ada padanan langsung |
Strategi migrasi: Tidak diperlukan. Cloud Run menskalakan otomatis berdasarkan permintaan dan pemanfaatan serta dirancang untuk bereaksi secara efisien tanpa konfigurasi periode pendinginan manual.
Warmup request
Cloud Run secara otomatis memanaskan instance menggunakan perintah
titik entri
container,
sehingga Anda tidak perlu mengaktifkan permintaan pemanasan secara manual atau mengonfigurasi
penangan /_ah/warmup. Jika memiliki kode yang ingin dijalankan saat instance dimulai
sebelum permintaan diproses, Anda dapat:
Konten statis
Di lingkungan standar App Engine, Anda dapat menayangkan konten statis tanpa menggunakan resource komputasi dengan menayangkan dari Cloud Storage, atau dengan mengonfigurasi pengendali.Cloud Run tidak memiliki opsi pengendali untuk menayangkan konten statis, sehingga Anda dapat menayangkan konten dari layanan Cloud Run (sama seperti konten dinamis), atau dari Cloud Storage.
Peran Cloud Run Invoker
Cloud Run juga menawarkan kemampuan untuk mengontrol akses ke layanan dengan Identity and Access Management (IAM). Binding kebijakan IAM untuk layanan dapat ditetapkan menggunakan gcloud CLI, Console, atau Terraform.
Untuk mereplikasi perilaku App Engine, Anda dapat membuat layanan menjadi publik dengan mengizinkan permintaan yang tidak diautentikasi. Hal ini dapat ditetapkan saat deployment, atau dengan memperbarui binding kebijakan IAM pada Layanan yang ada.
Deployment
Gunakan tanda deployment --allow-unauthenticated:
gcloud run deploy SERVICE_NAME ... --allow-unauthenticated
Layanan yang ada
Gunakan perintah gcloud run services add-iam-policy-binding:
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member="allUsers" \ --role="roles/run.invoker"
dengan SERVICE_NAME adalah nama layanan Cloud Run.
Atau, Anda dapat memilih untuk mengontrol siapa yang memiliki akses ke layanan dengan memberikan peran IAM Invoker Cloud Run yang dapat dikonfigurasi per layanan.
Deployment
gcloud run deploy SERVICE_NAME ... --no-allow-unauthenticated gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=MEMBER_TYPE \ --role="roles/run.invoker"
dengan SERVICE_NAME sebagai nama layanan, dan
MEMBER_TYPE adalah jenis utamanya. Misalnya, user:email@domain.com.
Untuk mengetahui daftar nilai yang dapat diterima untuk MEMBER_TYPE, lihat
ID utama.
Layanan yang ada
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=MEMBER_TYPE \ --role="roles/run.invoker"
dengan SERVICE_NAME sebagai nama layanan, dan
MEMBER_TYPE adalah jenis utamanya. Misalnya, user:email@domain.com.
Untuk mengetahui daftar nilai yang dapat diterima untuk MEMBER_TYPE, lihat
ID utama.
Variabel dan metadata lingkungan
App Engine dan Cloud Run memiliki variabel lingkungan tertentu yang ditetapkan secara otomatis. Tabel berikut menampilkan variabel lingkungan App Engine, beserta Cloud Run yang setara. Cloud Run hanya menerapkan lebih sedikit variabel lingkungan dibandingkan dengan App Engine, tetapi data yang tersedia dari server metadata sebagian besar setara.
Variabel lingkungan default
| Nama App Engine | Nama {[cloud_run_name]} | Deskripsi |
|---|---|---|
GAE_SERVICE
|
K_SERVICE
|
Nama layanan saat ini. Di App Engine, parameter ini disetel ke `default` jika tidak ditentukan. |
GAE_VERSION
|
K_REVISION
|
Label versi layanan Anda saat ini. |
PORT
|
PORT
|
Port yang menerima permintaan HTTP. |
| T/A | K_CONFIGURATION
|
Nama konfigurasi Cloud Run yang membuat revisi. |
GOOGLE_CLOUD_PROJECT
|
T/A | ID project Google Cloud yang terkait dengan aplikasi Anda. |
GAE_APPLICATION
|
ID aplikasi App Engine Anda. ID ini diawali dengan 'kode region~' seperti 'e~' untuk aplikasi yang di-deploy di Eropa. | |
GAE_DEPLOYMENT_ID
|
ID deployment saat ini. | |
GAE_ENV
|
Lingkungan App Engine. Tetapkan ke `standar` jika di lingkungan standar. | |
GAE_INSTANCE
|
ID instance tempat layanan Anda berjalan. | |
GAE_MEMORY_MB
|
Jumlah memori yang tersedia untuk proses aplikasi, dalam MB. | |
NODE_ENV (Hanya tersedia di runtime Node.js)
|
Tetapkan ke produksi saat layanan Anda di-deploy. | |
GAE_RUNTIME
|
Runtime yang ditentukan dalam file app.yaml Anda. |
Jalur server metadata umum
| Jalur | Deskripsi | Contoh |
|---|---|---|
/computeMetadata/v1/project/project-id
|
ID project yang mencerminkan project tempat layanan tersebut berada | test_project |
/computeMetadata/v1/project/numeric-project-id
|
Nomor project untuk layanan ini | 12345678912 |
/computeMetadata/v1/instance/id
|
ID unik instance container (juga tersedia di log). | 16a61494692b7432806a16
(string karakter alfanumerik) |
/computeMetadata/v1/instance/region
** Tidak tersedia untuk lingkungan fleksibel App Engine |
Region layanan ini, menampilkan projects/PROJECT_NUMBER/regions/REGION
|
projects/12345678912/regions/us-central1 |
/computeMetadata/v1/instance/service-accounts/default/email
|
Email untuk akun layanan runtime layanan ini. | service_account@test_project.iam.gserviceaccount.com |
/computeMetadata/v1/instance/service-accounts/default/token
|
Membuat token akses OAuth2 untuk akun layanan dari layanan ini. Endpoint ini akan menampilkan respons JSON dengan atribut access_token.
|
{ "access_token":"<TOKEN>", "expires_in":1799, "token_type":"Bearer" } |
Langkah berikutnya
- Panduan memulai: Men-deploy layanan web dengan Cloud Run
- Apakah aplikasi saya cocok untuk Cloud Run?
- Memigrasikan domain kustom App Engine saya ke Cloud Load Balancing
- Resource lainnya: