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 terbiasa dengan pengembangan web Rails. Tutorial ini akan memandu Anda men-deploy aplikasi Rails baru.

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

Sebelum memulai

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Instal Google Cloud CLI.

  4. Konfigurasi gcloud CLI agar menggunakan identitas gabungan Anda.

    Untuk mengetahui informasi selengkapnya, lihat Login ke gcloud CLI dengan identitas gabungan Anda.

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

    gcloud init

Menyiapkan lingkungan lokal untuk Rails

Untuk menyiapkan lingkungan lokal untuk pengembangan Rails, Anda harus:

  1. Menginstal Ruby versi 3.0 atau yang lebih baru.

  2. Menginstal gem Rails 7.

  3. Menginstal gem Bundler.

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

Untuk informasi tambahan tentang cara menginstal Rails dan dependensinya, lihat panduan Memulai Rails resmi.

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

Membuat 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 scaffolding 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 dibuat 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 dan 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 menjelaskan konfigurasi deployment aplikasi. Jika file ini tidak ada, gcloud CLI akan mencoba menebak konfigurasi deployment. Namun, sebaiknya sediakan file ini karena Rails memerlukan kunci rahasia di lingkungan produksi.

Untuk mengonfigurasi aplikasi contoh untuk deployment 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 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 adalah pertama kalinya Anda men-deploy aplikasi, Anda harus membuat aplikasi lingkungan fleksibel App Engine untuk membantu Anda memilih region tempat menjalankan aplikasi Rails. Anda dapat membaca lebih lanjut 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 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 akan ditampilkan.

Screenshot aplikasi Rails baru yang sedang berjalan

Kali ini, permintaan Anda akan dilayani 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 akan melayani semua traffic baru. Saat aplikasi di-deploy, Anda mungkin melihat beberapa pesan berulang saat platform memeriksa apakah aplikasi melayani. 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 seperti yang Anda gunakan untuk men-deploy aplikasi pertama kali. Deployment baru akan membuat a versi baru aplikasi Anda dan mempromosikannya ke versi default. Versi lama aplikasi Anda akan tetap ada, begitu juga dengan instance VM terkait. Perlu diketahui 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 terletak di Cloud de Confiance konsol, atau menggunakan gcloud app logs read. Anda dapat mempelajari lebih lanjut tentang 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 Cloud de Confiance konsol, buka halaman Manage resources.

    Buka Kelola resource

  2. Pada daftar project, pilih project yang Anda 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 Cloud de Confiance konsol, 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