ID wilayah
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 aliran 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 ini. 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:
app.yamlMenggunakan konfigurasi lokal file (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.Menggunakan image yang telah 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. Opsi 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:
Konfigurasikan 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: ID project Anda Google Cloud .
- 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 selengkapnya tentang 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
run.appdomain di 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 sama yang dikelola pengguna di Cloud Run yang Anda gunakan untuk lingkungan standar. Anda atau administrator Anda harus memberikan peran IAM berikut ke akun deployer dan akun layanan Cloud Build.
Klik untuk melihat peran yang diperlukan untuk akun deployer
Untuk mendapatkan izin yang diperlukan untuk membangun dan men-deploy dari sumber, minta administrator Anda untuk memberikan 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) di identitas layanan Cloud Run
Klik untuk melihat peran yang diperlukan untuk akun layanan Cloud Build
Cloud Build 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
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 Anda Google Cloud, dan PROJECT_ID dengan ID project Anda Google Cloud. Untuk mengetahui petunjuk mendetail tentang cara menemukan ID project 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 diterapkan.
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 Cloud Client Libraries, 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 Anda ke Cloud Run menggunakan
konsol Google Cloud atau gcloud CLI.
Konsol
Di Google Cloud konsol, buka halaman App Engine.
Di menu navigasi, klik Migration hub untuk men-deploy aplikasi App Engine Anda ke Cloud Run. Migration hub juga memungkinkan Anda memeriksa perkiraan penghematan di Cloud Run untuk perkiraan biaya dan rekomendasi.
Pilih layanan yang ingin Anda migrasikan, lalu klik Check compatibility.
Pilih Service dan Version untuk melihat hasil kompatibilitas. Migration hub menjalankan pemeriksa kompatibilitas untuk mengidentifikasi fitur yang tidak kompatibel.
Tinjau hasilnya untuk memverifikasi bahwa aplikasi Anda sepenuhnya kompatibel dengan Cloud Run, lalu klik Continue untuk melanjutkan ke bagian Review &Deploy.
Salin perintah di bagian Deploy through 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 Anda, 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 mengetahui informasi selengkapnya, lihatgcloud beta app migrate-to-run.- Saat diminta
Proceed with the deployment?, masukkanYuntuk membangun image container dari kode sumber Anda, dan men-deploy layanan ke Cloud Run.
- Saat diminta
Kunjungi layanan Cloud Run yang telah di-deploy dengan membuka URL layanan pada 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 telah dibuat sebelumnya
Untuk men-deploy menggunakan image container yang telah dibuat sebelumnya 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 dari deployment App Engine aktif dan tidak mengambil perubahan terbaru dari file
app.yamllokal Anda, yang dapat menyebabkan deployment yang tidak terbaru: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
Proceed with the deployment?, masukkanYuntuk mengekspor image container App Engine yang ada dan men-deploy layanan ke Cloud Run.
Kunjungi layanan Cloud Run yang telah di-deploy dengan membuka URL layanan pada 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 menghangatkan instance menggunakan titik entri container, sehingga Anda tidak perlu mengonfigurasi permintaan pemanasan. Jika Anda perlu menjalankan kode inisialisasi sebelum menayangkan traffic, konfigurasikan layanan Anda untuk menjalankannya saat startup, sebelum memproses permintaan atau menggunakan pemeriksaan startup. Anda juga dapat mengonfigurasi instance minimum untuk menjaga instance tetap hangat.
Halaman error kustom:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.htmlSolusi: Hapus bagian
error_handlersdari fileapp.yaml, dan ikuti salah satu atau kedua strategi ini:- Terapkan penanganan error langsung dalam kode aplikasi Anda. Tangkap kode error HTTP standar, seperti
404atau500, dan tayangkan halaman error HTML kustom Anda dari dalam logika aplikasi Anda. - Jika Anda menggunakan Cloud Load Balancing dengan Cloud Run, konfigurasikan respons error kustom di tingkat load balancer. Hal ini memungkinkan Anda menayangkan halaman error kustom dari Cloud Storage berdasarkan kode respons dari layanan Cloud Run Anda.
- Terapkan 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, dan migrasikan ke Google Cloud API 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 mengetahui 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.