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.

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 menggunakan perintah gcloud beta app migrate, 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 project ID Google Cloud Anda.
    • REGION dengan wilayah 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 yang ada, proses migrasi akan berhenti dan mencantumkan ketidakcocokan tersebut.

  5. Tinjau perbedaan Cloud Run berikut:

    • Cloud Run menggunakan istilah Revision, bukan Version, 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 konsol untuk mengonfigurasi dan mengelola setelan aplikasi Anda. Google Cloud Cloud Run tidak memerlukan konfigurasi berbasis file; namun, konfigurasi YAML didukung.

    • Setiap layanan yang Anda deploy ke Cloud Run menggunakan domain run.app 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 dikelola pengguna yang sama di Cloud Run yang Anda gunakan untuk App Engine. 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:

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 ID project 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 file app.yaml

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

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

Ganti kode berikut:

  • PATH dengan jalur ke file app.yaml Anda.
  • ENTRYPOINT dengan perintah titik entri untuk aplikasi Anda.

Jika Anda berada di direktori project, argumen PATH dan ENTRYPOINT bersifat opsional.

Untuk mengetahui informasi selengkapnya tentang argumen yang dapat Anda gunakan dengan perintah gcloud beta app migrate-to-run, lihat gcloud beta app migrate-to-run.

Men-deploy aplikasi App Engine yang sudah ada

Deploy aplikasi App Engine yang ada langsung ke Cloud Run dengan menjalankan perintah berikut:

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

Perintah ini akan meminta Anda untuk menentukan jalur relatif ke direktori kode sumber Anda.

Ganti kode berikut:

  • SERVICE dengan nama layanan App Engine Anda.
  • VERSION dengan ID versi layanan Anda.
  • ENTRYPOINT dengan perintah titik entri untuk aplikasi Anda. Jika Anda berada di direktori project, argumen ini bersifat opsional.

Untuk mengetahui informasi selengkapnya tentang argumen yang dapat Anda gunakan dengan perintah gcloud beta app migrate, 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