Memigrasikan aplikasi lingkungan standar App Engine 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 memigrasikan aplikasi App Engine yang ada yang terhubung ke instance Cloud SQL dengan IP publik.

Secara umum, langkah-langkah dalam panduan ini menunjukkan cara men-deploy kode sumber aplikasi yang sama di Cloud Run, lalu mengonfigurasinya agar menggunakan pengguna database Cloud SQL yang sama untuk menghubungkan instance dan database yang ada.

Langkah-langkah dalam panduan ini tidak mencakup cara menggunakan koneksi IP pribadi internal karena Anda harus mengubah kode aplikasi terlebih dahulu. Namun, setelah men-deploy aplikasi ke Cloud Run, Anda dapat menggunakan langkah-langkah di bagian Menghubungkan ke Cloud SQL dari Cloud Run untuk mempelajari persyaratan dan cara menggunakan IP Pribadi.

Untuk memahami lebih lanjut persamaan dan perbedaan antara App Engine dan Cloud Run, termasuk manfaat bermigrasi ke Cloud Run, lihat ringkasan perbandingan.

Sebelum memulai

  1. Pastikan Cloud Run memenuhi persyaratan aplikasi Anda. Tinjau perbandingan App Engine dan Cloud Run untuk mengetahui apakah resource Cloud Run seperti CPU dan memori memenuhi kebutuhan Anda.
  2. Panduan ini mengasumsikan bahwa aplikasi Anda berjalan tanpa error.

  3. Anda memerlukan akses ke instance Cloud SQL, termasuk nama pengguna dan sandi database untuk menghubungkan aplikasi. Cloud Run menggunakan enkripsi dan terhubung melalui proxy Auth Cloud SQL menggunakan salah satu soket Unix atau konektor Cloud SQL.

  4. 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 Google Cloud CLI atau konsol Google Cloud untuk mengonfigurasi dan mengelola setelan aplikasi Anda. Cloud Run tidak memerlukan konfigurasi berbasis file, tetapi Konfigurasi YAML didukung dan Anda dapat menggunakanalat app2run untuk menerjemahkan file App Engine yang ada untuk Cloud Run.

    • 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).

Memigrasikan aplikasi ke Cloud Run

Pada tingkat tinggi, proses untuk memigrasikan aplikasi App Engine Anda ke Cloud Run terdiri dari langkah-langkah berikut:

  1. Mengaktifkan API yang diperlukan
  2. Mengonfigurasi akun layanan Cloud Run
  3. Men-deploy aplikasi Anda di Cloud Run

Mengaktifkan API yang diperlukan

Sebelum dapat men-deploy aplikasi ke Cloud Run, Anda harus terlebih dahulu mengaktifkan Cloud Run dan Artifact Registry API.

Gunakan konsol Google Cloud untuk mengaktifkan API:

Buka API dan Layanan

Mengonfigurasi akun layanan Cloud Run

Anda dapat memilih untuk membuat akun layanan baru atau terus menggunakan akun layanan yang dikelola pengguna yang sama di Cloud Run yang Anda gunakan untuk App Engine. Di akun layanan, Anda harus memastikan bahwa peran Identity and Access Management (IAM) berikut atau izin yang setara telah dikonfigurasi:

Untuk men-deploy ke Cloud Run, Anda harus memiliki salah satu dari hal berikut:

  • Pemilik
  • Editor
  • Peran Admin Cloud Run dan Pengguna Akun Layanan
  • Izin Cloud Run yang setara

Untuk koneksi IP publik ke Cloud SQL, Anda harus memiliki salah satu dari hal berikut:

  • Klien Cloud SQL (banyak dipilih)
  • Admin Cloud SQL
  • Izin Cloud SQL yang setara

Men-deploy aplikasi Anda di Cloud Run

Anda tidak perlu membuat perubahan kode apa pun untuk men-deploy aplikasi App Engine ke Cloud Run.

Pada langkah-langkah berikut, Anda akan men-deploy aplikasi ke layanan baru di Cloud Run dan secara bersamaan mengonfigurasi layanan tersebut agar terhubung ke Cloud SQL.

Seperti lingkungan standar App Engine, Cloud Run mendukung deployment berbasis sumber. Anda memerlukan akses ke repositori kode sumber Anda.

Cloud Run secara internal menggunakan buildpack dan Cloud Build untuk mem-build image container secara otomatis dari kode sumber dan tidak mengharuskan Anda membangun container secara manual atau menentukan Dockerfile. Namun, jika ada Dockerfile, Dockerfile tersebut akan digunakan.

Men-deploy layanan Cloud Run dari sumber menggunakan Artifact Registry, sehingga fitur ini hanya tersedia di region yang didukung oleh Artifact Registry.

Untuk men-deploy kode sumber yang sama dengan yang Anda deploy sebelumnya ke App Engine:

  1. Ubah ke direktori sumber tempat kode sumber aplikasi Anda berada.

      cd YOUR_APPENGINE_CODE_DIR
    
  2. Deploy ke Cloud Run.

    Untuk mem-build kode sumber dan men-deploy aplikasi, jalankan perintah deploy dengan flag --source. Anda harus menetapkan flag konfigurasi untuk menyertakan variabel lingkungan koneksi SQL yang sama dengan yang ditentukan dalam file app.yaml aplikasi App Engine Anda:

      gcloud run deploy run-sql --source SOURCE \
        --allow-unauthenticated \
        --add-cloudsql-instances INSTANCE_CONNECTION_NAME\
        --set-env-vars INSTANCE_UNIX_SOCKET="/cloudsql/INSTANCE_CONNECTION_NAME" \
        --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME" \
        --set-env-vars DB_NAME="DB_NAME" \
        --set-env-vars DB_USER="DB_USER" \
        --set-env-vars DB_PASS="DB_PASS"
    

    Ganti:

    • SOURCE dengan jalur ke direktori sumber App Engine Anda
    • INSTANCE_CONNECTION_NAME dengan nama koneksi instance dari instance Cloud SQL Anda, atau daftar nama koneksi yang dipisahkan koma. Anda dapat menemukan INSTANCE_CONNECTION_NAME dengan menjalankan:
        gcloud instances describe INSTANCE_NAME
    
    • DB_NAME dengan nama database Anda.
    • DB_USER dengan nama pengguna database Anda.
    • DB_PASS dengan sandi pengguna database Anda.
  3. Masukkan nama LAYANAN saat diminta.

  4. Respons setiap permintaan untuk menginstal API yang diperlukan dengan merespons y saat diminta. Anda hanya perlu melakukan ini sekali untuk sebuah project. Tunggu hingga build dan deploy selesai. Setelah selesai, pesan yang mirip dengan pesan ini akan ditampilkan:

    Service [my-app] revision [my-app-00000-xxx] has been deployed and is serving 100 percent of traffic. Service URL: https://sample.run.app
    

    Untuk mempelajari selengkapnya tentang cara men-deploy kode sumber ke Cloud Run, lihat Men-deploy dari kode sumber.

Langkah berikutnya