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 menjelaskan cara men-deploy aplikasi yang ada di lingkungan standar ke Cloud Run. Petunjuk ini berlaku untuk runtime generasi kedua yang tidak menggunakan layanan paket lama App Engine.
Langkah-langkah yang dijelaskan dalam panduan ini tidak memengaruhi fungsi atau alur traffic aplikasi App Engine yang ada. Layanan Cloud Run yang baru dibuat adalah replika layanan App Engine yang dapat Anda uji secara independen.
Cloud Run menggunakan banyak infrastruktur yang sama dengan lingkungan standar App Engine sehingga ada banyak kesamaan di antara kedua platform tersebut. Untuk mempelajari lebih lanjut persamaan dan perbedaan antara App Engine dan Cloud Run, termasuk manfaat bermigrasi ke Cloud Run, lihat ringkasan perbandingan.Untuk men-deploy ke Cloud Run, pilih salah satu strategi berikut:
Gunakan konfigurasi lokal file
app.yaml(direkomendasikan): Pilih opsi ini untuk membangun image container langsung dari kode sumber lokal Anda dan men-deploy-nya ke Cloud Run. Tindakan ini memastikan bahwa modifikasi lokal terbaru pada kode atau konfigurasi Anda disertakan dalam deployment baru.Gunakan image yang dibuat sebelumnya: Opsi ini berguna jika Anda tidak memiliki akses ke kode sumber. Pilih opsi ini untuk men-deploy salinan persis dari versi yang sudah berjalan di App Engine, tanpa membangun ulang image container. Hal ini berguna jika Anda ingin memverifikasi perilaku deployment aktif tanpa perubahan kode.
Sebelum memulai
Pastikan aplikasi App Engine Anda berjalan tanpa error. Anda memerlukan akses ke kode sumber App Engine jika memilih untuk men-deploy menggunakan konfigurasi lokal.
Aktifkan Cloud Run Admin API dan Artifact Registry API:
Konfigurasi project dan region Anda menggunakan perintah berikut:
gcloud auth login gcloud config set project PROJECT_ID gcloud config set run/region REGION gcloud components updateGanti kode berikut:
- PROJECT_ID: Google Cloud Project ID Anda.
- REGION: region tempat Anda ingin men-deploy layanan Cloud Run.
Periksa fitur yang tidak kompatibel di aplikasi Anda, dan hapus fitur tersebut sebelum bermigrasi ke Cloud Run. Untuk memeriksa ketidakcocokan aplikasi tanpa melakukan migrasi atau deployment, jalankan perintah berikut:
gcloud beta app migrate-to-run --dry-runTinjau hasil pemeriksaan kompatibilitas dan lakukan perubahan yang direkomendasikan jika diperlukan.
Tinjau perbedaan Cloud Run berikut:
Cloud Run menggunakan istilah
Revision, bukanVersion, untuk mewakili setiap kali Anda men-deploy perubahan ke layanan tertentu. Men-deploy aplikasi Anda ke layanan di Cloud Run untuk pertama kalinya akan menciptakan revisi pertamanya. Setiap deployment layanan berikutnya akan membuat revisi lainnya. Pelajari lebih lanjut cara men-deploy ke Cloud Run.Anda dapat men-deploy kode sumber ke Cloud Run menggunakan gcloud CLI atau Google Cloud konsol untuk mengonfigurasi dan mengelola setelan aplikasi Anda. Cloud Run tidak memerlukan konfigurasi berbasis file; namun, konfigurasi YAML didukung.
Setiap layanan yang Anda deploy ke Cloud Run menggunakan domain
run.appdi URL untuk mengakses layanan secara publik.Tidak seperti layanan App Engine yang bersifat publik secara default, layanan Cloud Run bersifat pribadi secara default dan mengharuskan Anda mengonfigurasinya untuk akses publik (tidak diautentikasi).
Peran yang diperlukan
Anda dapat memilih untuk membuat akun layanan baru atau menggunakan akun layanan yang dikelola pengguna yang sama di Cloud Run yang Anda gunakan untuk lingkungan standar. Anda atau administrator Anda harus memberikan peran IAM berikut kepada akun deployer dan akun layanan Cloud Build.
Klik untuk melihat peran yang diperlukan untuk akun deployer
Untuk mendapatkan izin yang Anda perlukan untuk membangun dan men-deploy dari sumber, minta administrator untuk memberi Anda peran IAM berikut:
- Cloud Run Source Developer (
roles/run.sourceDeveloper) di project Anda - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) di project Anda - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) pada identitas layanan Cloud Run
Klik untuk melihat peran yang diperlukan untuk akun layanan Cloud Build
Cloud Build secara otomatis menggunakan
akun layanan default Compute Engine sebagai akun layanan Cloud Build default untuk membangun kode sumber dan
resource Cloud Run Anda, kecuali jika Anda mengganti perilaku ini. Agar Cloud Build dapat membangun sumber Anda, minta administrator Anda untuk memberikan peran Cloud Run Builder (roles/run.builder) ke akun layanan default Compute Engine di project Anda:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Ganti PROJECT_NUMBER dengan nomor project Google Cloud
Anda, dan PROJECT_ID dengan project ID Google Cloud
Anda. Untuk mengetahui petunjuk mendetail tentang cara menemukan project ID dan nomor project Anda,
lihat Membuat
dan mengelola project.
Pemberian peran builder Cloud Run ke akun layanan default Compute Engine memerlukan waktu beberapa menit untuk berlaku.
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.
Menggunakan konfigurasi lokal file app.yaml
Deploy konfigurasi App Engine lokal ke Cloud Run menggunakan
konsol Google Cloud atau gcloud CLI.
Konsol
Di konsol Google Cloud , buka halaman App Engine.
Di menu navigasi, klik Migration hub untuk men-deploy aplikasi App Engine ke Cloud Run. Hub migrasi juga memungkinkan Anda memeriksa perkiraan penghematan di Cloud Run untuk perkiraan dan rekomendasi biaya.
Pilih layanan yang ingin Anda migrasikan, lalu klik Periksa kompatibilitas.
Pilih Layanan dan Versi Anda untuk melihat hasil kompatibilitas. Hub migrasi menjalankan pemeriksa kompatibilitas untuk mengidentifikasi fitur yang tidak kompatibel.
Tinjau hasilnya untuk memverifikasi bahwa aplikasi Anda sepenuhnya kompatibel dengan Cloud Run, lalu klik Lanjutkan untuk melanjutkan ke bagian Tinjau & Deploy.
Salin perintah di bagian Deploy melalui gcloud, lalu eksekusi di dalam direktori project Anda.
Klik View deployed versions untuk melihat layanan App Engine Anda yang di-deploy di Cloud Run.
gcloud
Untuk men-deploy layanan Cloud Run menggunakan file app.yaml lokal
dari konfigurasi App Engine yang ada, ikuti langkah-langkah berikut:
Di terminal, ubah ke direktori sumber tempat file
app.yamlberada.Jalankan perintah berikut untuk men-deploy layanan Anda ke Cloud Run:
gcloud beta app migrate-to-runPerintah ini menghasilkan konfigurasi file
service.yamluntuk Cloud Run dan menyimpannya secara lokal ke direktori yang sama dengan fileapp.yamlAnda. Untuk informasi selengkapnya, lihat:gcloud beta app migrate-to-run.- Saat diminta
Proceed with the deployment?, masukkanYuntuk membangun image container dari kode sumber Anda, lalu men-deploy layanan ke Cloud Run.
- Saat diminta
Buka layanan Cloud Run yang telah di-deploy dengan membuka URL layanan di browser web.
Opsional:
Jika file
app.yamlAnda berada di direktori lain, tentukan jalur file tersebut menggunakan flag--appyaml:gcloud beta app migrate-to-run --appyaml=PATHGanti PATH dengan jalur ke file
app.yamlAnda.Untuk membuat dan mengekspor konfigurasi
service.yamlCloud Run tanpa men-deploy layanan, gunakan flag--export-only:gcloud beta app migrate-to-run --export-only=EXPORT_PATHGanti EXPORT_PATH dengan direktori atau jalur tempat Anda ingin menyimpan file
service.yaml.
Menggunakan image yang dibuat sebelumnya
Untuk men-deploy menggunakan image container yang sebelumnya dibuat dari versi App Engine yang di-deploy, bukan membangun ulang image container dari file app.yaml lokal, ikuti langkah-langkah berikut:
Anda tidak memerlukan kode sumber aplikasi untuk deployment ini.
Jalankan perintah berikut untuk men-deploy layanan Anda ke Cloud Run. Perintah ini menggunakan image container deployment App Engine yang aktif dan tidak merekam perubahan terbaru dari file
app.yamllokal Anda, yang dapat menyebabkan deployment yang sudah tidak berlaku:gcloud beta app migrate-to-run --service=SERVICE --version=VERSION --from-imageGanti kode berikut:
- SERVICE: nama layanan App Engine Anda.
- VERSION: ID versi layanan Anda.
Perintah ini mengambil konfigurasi layanan dan versi yang ditentukan untuk membuat file
service.yamluntuk Cloud Run. Untuk mengetahui informasi selengkapnya, lihatgcloud beta app migrate-to-run.- Saat diminta dengan
Proceed with the deployment?, masukkanYuntuk mengekspor image container App Engine yang ada dan men-deploy layanan ke Cloud Run.
Buka layanan Cloud Run yang telah di-deploy dengan membuka URL layanan di browser web.
Opsional:
Untuk membuat konfigurasi
service.yamlCloud Run tanpa men-deploy layanan, jalankan perintah berikut:gcloud beta app migrate-to-run --service=SERVICE \ --version=VERSION \ --from-image \ --export-only=EXPORT_PATHGanti EXPORT_PATH dengan direktori atau jalur tempat Anda ingin menyimpan file
service.yaml.
Fitur yang Tidak Kompatibel
Perintah migrasi akan gagal jika fileapp.yaml Anda berisi salah satu
konfigurasi yang tidak didukung berikut:
Layanan masuk:
inbound_services: - warmupSolusi: Hapus bagian
inbound_servicesdari fileapp.yamlAnda. Cloud Run memanaskan instance menggunakan titik entri container, sehingga Anda tidak perlu mengonfigurasi permintaan pemanasan. Jika Anda perlu menjalankan kode inisialisasi sebelum melayani traffic, konfigurasi layanan Anda untuk menjalankannya saat startup, sebelum memproses permintaan atau menggunakan pemeriksaan startup. Anda juga dapat mengonfigurasi instance minimum untuk menjaga instance tetap aktif.
Halaman error kustom:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.htmlSolusi: Hapus bagian
error_handlersdari fileapp.yamlAnda, dan ikuti salah satu atau kedua strategi berikut:- Menerapkan penanganan error langsung dalam kode aplikasi Anda. Tangkap
kode error HTTP standar, seperti
404atau500, dan sajikan halaman error HTML kustom dari dalam logika aplikasi Anda. - Jika Anda menggunakan Cloud Load Balancing dengan Cloud Run, konfigurasi respons error kustom di tingkat load balancer. Dengan begitu, Anda dapat menyajikan halaman error kustom dari Cloud Storage berdasarkan kode respons dari layanan Cloud Run Anda.
- Menerapkan penanganan error langsung dalam kode aplikasi Anda. Tangkap
kode error HTTP standar, seperti
Layanan paket untuk runtime generasi kedua:
app_engine_apis: trueSolusi: Hapus setelan
app_engine_apisdari fileapp.yamlAnda, lalu migrasikan ke API Google Cloud atau alternatif pihak ketiga. Untuk mengetahui informasi selengkapnya, lihat Bermigrasi dari layanan paket.Runtime generasi pertama:
runtime: python27Solusi: Upgrade aplikasi Anda ke runtime generasi kedua yang didukung. Untuk informasi selengkapnya, lihat Ringkasan Bermigrasi ke runtime generasi kedua.
Langkah berikutnya
- Pahami cara mengelola layanan Cloud Run.
- Lihat kontrak runtime container Cloud Run untuk memahami persyaratan dan perilaku container di Cloud Run.
- Pelajari cara menyimpan dependensi untuk layanan Anda yang memerlukan kunci API, sandi, atau informasi sensitif lainnya menggunakan Secret Manager.