Menjalankan Rails 7 di lingkungan fleksibel App Engine

Mulai mengembangkan aplikasi Ruby on Rails yang berjalan di lingkungan fleksibel App Engine. Aplikasi yang Anda buat berjalan di infrastruktur yang sama dengan yang mendukung semua produk Google, sehingga Anda dapat yakin bahwa aplikasi tersebut dapat diskalakan untuk melayani semua pengguna Anda, baik sedikit maupun jutaan.

Tutorial ini mengasumsikan bahwa Anda sudah memahami pengembangan web Rails. Memandu Anda dalam men-deploy aplikasi Rails baru.

Tutorial ini mendukung dan memerlukan Ruby 3.0 atau yang lebih baru.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Instal Google Cloud CLI.

  7. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  8. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init

Menyiapkan lingkungan lokal untuk Rails

Untuk menyiapkan lingkungan lokal Anda untuk pengembangan Rails, Anda harus:

  1. Instal Ruby versi 3.0 atau yang lebih baru.

  2. Instal gem Rails 7.

  3. Instal gem Bundler.

Atau, Anda dapat menggunakan Cloud Shell, yang sudah dilengkapi dengan Ruby, Rails, dan Google Cloud CLI.

Untuk mengetahui informasi tambahan tentang cara menginstal Rails dan dependensinya, lihat panduan resmi Mulai menggunakan Rails.

Setelah menyelesaikan prasyarat, Anda dapat membuat dan men-deploy aplikasi Rails. Bagian berikut akan memandu Anda mengonfigurasi, menjalankan, dan men-deploy aplikasi.

Buat aplikasi baru

  1. Buat aplikasi contoh Rails baru.

    rails new appengine_example
    
  2. Buka direktori yang berisi kode contoh.

    cd appengine_example
    

Menjalankan aplikasi secara lokal

Untuk menjalankan aplikasi Rails baru di komputer lokal Anda:

  1. Mulai server web lokal.

     bundle exec rails server
    
  2. Di browser Anda, buka http://localhost:3000/.

    Aplikasi contoh menampilkan logo Rails dengan versi Rails dan Ruby.

Menambahkan halaman sederhana

Sekarang tambahkan halaman Selamat Datang ke aplikasi Rails yang dibuat.

  1. Untuk membuat kerangka halaman baru, buat pengontrol Rails baru bernama WelcomeController dengan tindakan index.

    bundle exec rails generate controller Welcome index
    
  2. Buka file app/views/welcome/index.html.erb untuk melihat HTML boilerplate berikut.

    <h1>Welcome#index</h1>
    <p>Find me in app/views/welcome/index.html.erb</p>
  3. Ubah file sesuai keinginan Anda. Misalnya, Anda dapat menggunakan konten berikut:

    <h1>Welcome</h1>
    <p>This is a home page for a new Rails App on Google Cloud Platform!</p>
  4. Tetapkan tindakan pengontrol index sebagai tindakan root untuk Rails. Kemudian, setiap kali pengguna mengunjungi aplikasi Rails, mereka akan melihat halaman selamat datang Anda.

  5. Buka file config/routes.rb untuk melihat konten yang dihasilkan berikut.

    Rails.application.routes.draw do
      get 'welcome/index'
    
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
    end
  6. Untuk mengubah file ini, tambahkan root 'welcome#index'.

    Rails.application.routes.draw do
      get 'welcome/index'
    
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
      root 'welcome#index'
    end
  7. Simpan file tersebut, lalu tutup. Uji aplikasi Rails seperti yang Anda lakukan sebelumnya.

Men-deploy aplikasi ke lingkungan fleksibel App Engine

Lingkungan fleksibel App Engine menggunakan file bernama app.yaml. untuk mendeskripsikan konfigurasi deployment aplikasi. Jika file ini tidak ada, gcloud CLI akan mencoba menebak konfigurasi deployment. Namun, sebaiknya berikan file ini karena Rails memerlukan kunci rahasia di lingkungan produksi.

Untuk mengonfigurasi aplikasi contoh agar dapat di-deploy ke App Engine, buat file baru bernama app.yaml di root direktori aplikasi contoh Anda, lalu tambahkan kode berikut:

entrypoint: bundle exec rackup --port $PORT
env: flex
runtime: ruby

Mengonfigurasi kunci rahasia Rails

Saat Anda men-deploy aplikasi Rails di lingkungan produksi, tetapkan variabel lingkungan SECRET_KEY_BASE ke kunci rahasia yang digunakan untuk melindungi data sesi pengguna. Variabel lingkungan ini dibaca dalam file config/secrets.yml.

  1. Buat kunci rahasia baru.

    bundle exec rails secret
    
  2. Salin kunci rahasia yang dibuat. Anda akan menggunakan kunci rahasia pada langkah berikutnya.

  3. Buka file app.yaml yang Anda buat sebelumnya, lalu tambahkan bagian env_variables. env_variables menetapkan variabel lingkungan di lingkungan production di lingkungan fleksibel App Engine. app.yaml Anda akan terlihat seperti contoh di bawah, dengan [SECRET_KEY] diganti dengan kunci rahasia yang Anda salin.

    entrypoint: bundle exec rackup --port $PORT
    env: flex
    runtime: ruby
    
    env_variables:
      SECRET_KEY_BASE: [SECRET_KEY]

Menyiapkan aplikasi lingkungan fleksibel App Engine

Jika ini pertama kalinya Anda men-deploy aplikasi, Anda perlu membuat aplikasi lingkungan fleksibel App Engine untuk membantu Anda memilih region tempat menjalankan aplikasi Rails. Anda dapat membaca selengkapnya tentang region dan zona.

  1. Buat aplikasi App Engine. Secara default, perintah berikut akan membuat dua instance:

    gcloud app create
    
  2. Pilih region yang mendukung lingkungan fleksibel App Engine untuk aplikasi Ruby.

Men-deploy ke lingkungan fleksibel App Engine

Deploy aplikasi contoh dengan menjalankan perintah berikut:

gcloud app deploy

Tunggu hingga muncul pesan yang memberi tahu Anda bahwa update telah selesai. Proses ini dapat memerlukan waktu beberapa menit.

Mengakses aplikasi Rails yang di-deploy

  1. Untuk mengambil project ID Anda, jalankan gcloud info.

  2. Di browser Anda, masukkan URL berikut:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Ganti kode berikut:

Konten berikut ditampilkan.

Screenshot aplikasi Rails baru yang sedang berjalan

Kali ini, permintaan Anda akan ditayangkan oleh aplikasi Rails yang berjalan di lingkungan fleksibel App Engine.

Perintah ini men-deploy aplikasi seperti yang dijelaskan dalam app.yaml dan menetapkan versi yang baru di-deploy sebagai versi default, sehingga versi tersebut akan melayani semua traffic baru. Saat aplikasi di-deploy, Anda mungkin melihat beberapa pesan berulang saat platform memeriksa apakah aplikasi ditayangkan. Hal ini wajar. Tunggu pesan yang memberi tahu Anda bahwa update aplikasi telah selesai.

Jika mengupdate aplikasi, Anda dapat men-deploy versi yang diupdate dengan memasukkan perintah yang sama yang Anda gunakan untuk men-deploy aplikasi pertama kali. Deployment baru akan membuat versi baru aplikasi Anda dan mempromosikannya ke versi default. Versi lama aplikasi Anda tetap ada, begitu juga dengan instance VM terkaitnya. Perhatikan bahwa semua versi aplikasi dan instance VM ini adalah resource yang dapat ditagih.

Membaca log App Engine

Setelah men-deploy aplikasi Rails, Anda mungkin ingin membaca log. Anda dapat membaca log aplikasi menggunakan Logs Explorer yang ada di konsol Google Cloud , atau menggunakan gcloud app logs read. Anda dapat mempelajari lebih lanjut cara membaca log menggunakan gcloud CLI.

Membersihkan resource

Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar tidak lagi menggunakan kuota dan menimbulkan tagihan. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.

Hapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

Untuk menghapus project:

  1. Di Konsol Google Cloud , buka halaman Manage resources.

    Buka Kelola resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Menghapus versi App Engine

Untuk menghapus versi aplikasi:

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

    Buka Versi

  2. Pilih kotak centang untuk versi aplikasi non-default yang ingin Anda hapus.
  3. Untuk menghapus versi aplikasi, klik Hapus.

Langkah berikutnya