Men-deploy aplikasi App Engine di lingkungan standar ke Cloud Run

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 Anda di lingkungan standar ke Cloud Run menggunakan Google Cloud CLI. 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 Anda 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:

Sebelum memulai

  1. Pastikan Anda memiliki akses ke kode sumber App Engine, dan aplikasi App Engine Anda berjalan tanpa error.

  2. Aktifkan Cloud Run Admin API dan Artifact Registry API:

    Aktifkan API

  3. 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 update
    

    Ganti kode berikut:

    • PROJECT_ID dengan Google Cloud project ID Anda.
    • REGION dengan region Anda.
  4. Tinjau fitur yang tidak kompatibel di aplikasi Anda, dan hapus fitur tersebut sebelum bermigrasi ke Cloud Run. Jika ada fitur yang tidak kompatibel di aplikasi Anda yang ada, proses migrasi akan berhenti dan mencantumkan fitur yang tidak kompatibel.

  5. Tinjau perbedaan Cloud Run berikut:

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 App Engine. 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 mem-build dan men-deploy dari sumber, minta administrator Anda untuk memberikan peran IAM berikut:

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 mem-build kode sumber dan resource Cloud Run Anda, kecuali jika Anda mengganti perilaku ini. Agar Cloud Build dapat mem-build 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 project ID Anda Google Cloud. 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 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.

Men-deploy aplikasi App Engine yang ada

Deploy aplikasi App Engine yang ada langsung ke Cloud Run menggunakan Google Cloud konsol atau gcloud CLI.

Konsol

  1. Di Google Cloud konsol, buka halaman App Engine.

    Buka App Engine

  2. 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.

  3. Pilih layanan yang ingin Anda migrasikan, lalu klik Check compatibility.

  4. Pilih Service dan Version untuk melihat hasil kompatibilitas. Migration hub menjalankan pemeriksa kompatibilitas untuk mengidentifikasi fitur yang tidak kompatibel.

  5. Tinjau hasilnya untuk memverifikasi bahwa aplikasi Anda sepenuhnya kompatibel dengan Cloud Run, lalu klik Continue untuk melanjutkan ke bagian Review &Deploy.

  6. Salin perintah di bagian Deploy through gcloud, lalu jalankan di dalam direktori project Anda.

  7. Klik View deployed versions untuk melihat layanan App Engine Anda yang di-deploy di Cloud Run.

gcloud

Gunakan Google Cloud CLI untuk memigrasikan aplikasi Anda menggunakan file app.yaml lokal atau konfigurasi deployment App Engine yang ada.

  1. Di terminal Anda, ubah ke direktori sumber project tempat file app.yaml berada.

  2. Jalankan perintah berikut:

    gcloud beta app migrate-to-run
    

    Jika file app.yaml Anda berada di direktori lain, sertakan flag --appyaml:

    gcloud beta app migrate-to-run --appyaml=PATH
    

    Ganti PATH dengan jalur ke file app.yaml Anda.

Untuk mengetahui informasi selengkapnya, lihat gcloud beta app migrate-to-run.

Menggunakan file app.yaml

Terjemahkan file app.yaml App Engine lokal Anda ke layanan Cloud Run dengan menjalankan perintah berikut:

  1. Di terminal Anda, ubah ke direktori sumber project tempat file app.yaml berada.

  2. Jalankan perintah berikut:

    gcloud beta app migrate-to-run
    

    Jika file app.yaml Anda berada di direktori lain, sertakan flag --appyaml:

    gcloud beta app migrate-to-run --appyaml=PATH
    

    Ganti PATH dengan jalur ke file app.yaml Anda.

Untuk mengetahui informasi selengkapnya, lihat gcloud beta app migrate-to-run.

Menggunakan konfigurasi deployment yang ada

Untuk menggunakan konfigurasi layanan App Engine yang di-deploy, bukan file app.yaml lokal, jalankan perintah berikut.

gcloud beta app migrate-to-run --service=SERVICE --version=VERSION

Perintah ini menggunakan konfigurasi file app.yaml dari deployment yang ada, yang mungkin sudah tidak berlaku jika Anda baru-baru ini melakukan perubahan pada file app.yaml lokal Anda:

Ganti kode berikut:

  • SERVICE dengan nama layanan App Engine Anda. App Engine menggunakan konfigurasi layanan yang ada, dan mengabaikan konfigurasi file app.yaml di direktori lokal Anda.
  • VERSION dengan ID versi layanan Anda. App Engine menggunakan konfigurasi versi yang ada, dan mengabaikan konfigurasi file app.yaml di direktori lokal Anda.

Untuk mengetahui informasi selengkapnya, lihat gcloud beta app migrate-to-run.

Fitur yang tidak kompatibel

Perintah migrasi akan gagal jika file app.yaml Anda berisi salah satu konfigurasi yang tidak didukung berikut:

  • Layanan masuk:

    inbound_services:
    - warmup
    
  • Halaman error kustom:

    error_handlers:
    - file: default_error.html
    - error_code: over_quota
      file: over_quota.html
    
  • Layanan paket untuk runtime generasi kedua:

    app_engine_apis: true
    
  • Variabel lingkungan build:

    build_env_variables:
      Foo: Bar
    
  • Runtime generasi pertama:

    runtime: python27
    

Langkah berikutnya