Runtime Ruby

Fungsi Cloud Run Anda berjalan di lingkungan yang terdiri dari versi sistem operasi dengan paket add-on, dukungan bahasa, dan library Framework Fungsi Ruby yang mendukung dan memanggil fungsi Anda. Lingkungan ini diidentifikasi berdasarkan versi bahasa, dan dikenal sebagai ID runtime.

Persiapan fungsi

Anda dapat menyiapkan fungsi langsung dari Konsol Google Cloud atau menulisnya di komputer lokal, lalu menguploadnya. Guna menyiapkan mesin lokal untuk pengembangan Ruby, lihat Menyiapkan lingkungan pengembangan Ruby.

Runtime dan image dasar Ruby yang didukung

Runtime ID Runtime Stack Image dasar runtime
Ruby 3.3 ruby33
  • google-22 (default)
  • google-22-full
  • google-22/ruby33
  • google-22-full/ruby33
  • Ruby 3.2 ruby32
  • google-22 (default)
  • google-22-full
  • google-22/ruby32
  • google-22-full/ruby32
  • Ruby 3.0 ruby30 google-18-full google-18-full/ruby30
    Ruby 2.7 ruby27 google-18-full google-18-full/ruby27
    Ruby 2.6 ruby26 google-18-full google-18-full/ruby26

    Memilih runtime Anda

    Anda dapat memilih salah satu runtime Ruby yang didukung untuk fungsi Anda selama deployment.

    Anda dapat memilih versi runtime menggunakan Konsol Google Cloud, atau gcloud CLI. Klik tab untuk mendapatkan petunjuk cara menggunakan alat pilihan Anda:

    gcloud

    Tentukan image dasar Ruby untuk fungsi Anda menggunakan flag --base-image, saat men-deploy fungsi. Contoh:

    gcloud run deploy FUNCTION \
        --source . \
        --function FUNCTION_ENTRYPOINT \
        --base-image ruby33
    

    Ganti:

    • FUNCTION dengan nama fungsi yang Anda deployment. Anda dapat menghilangkan parameter ini sepenuhnya, tetapi Anda akan diminta untuk memasukkan nama jika mengabaikannya.

    • FUNCTION_ENTRYPOINT dengan titik entri ke fungsi Anda dalam kode sumber. Ini adalah kode yang dijalankan Cloud Run saat fungsi Anda berjalan. Nilai flag ini harus berupa nama fungsi atau nama class yang sepenuhnya memenuhi syarat yang ada dalam kode sumber Anda.

    Untuk mendapatkan petunjuk mendetail tentang cara men-deploy fungsi menggunakan gcloud CLI, lihat Men-deploy fungsi di Cloud Run.

    Konsol

    Anda dapat memilih versi runtime saat membuat atau memperbarui fungsi Cloud Run di konsol Google Cloud. Untuk mengetahui petunjuk mendetail tentang cara men-deploy fungsi, lihat Men-deploy fungsi di Cloud Run.

    Untuk memilih runtime di konsol Google Cloud saat membuat fungsi, ikuti langkah-langkah berikut:

    1. Di konsol Google Cloud, buka halaman Cloud Run:

      Buka Cloud Run

    2. Klik Tulis fungsi.

    3. Dalam daftar Runtime, pilih versi runtime Ruby.

    4. Klik Create, dan tunggu Cloud Run membuat layanan menggunakan revisi placeholder.

    5. Konsol akan mengalihkan Anda ke tab Sumber, tempat Anda dapat melihat kode sumber fungsi. Klik Simpan dan deploy ulang.

    Untuk petunjuk mendetail tentang cara mengupdate versi runtime setelah fungsi Anda di-deploy, lihat Men-deploy ulang kode sumber baru.

    Struktur kode sumber

    Agar fungsi Cloud Run dapat menemukan definisi fungsi Anda, kode sumber harus mengikuti struktur tertentu. Lihat artikel Menulis fungsi Cloud Run untuk mengetahui informasi selengkapnya.

    Menentukan dependensi

    Fungsi Cloud Run yang ditulis dalam Ruby menggunakan bundler untuk mengakses dependensi.

    Functions Framework adalah dependensi wajib untuk semua fungsi. Meskipun fungsi Cloud Run menginstalnya untuk Anda saat fungsi tersebut dibuat, sebaiknya sertakan sebagai dependensi eksplisit agar lebih jelas.

    Jika fungsi Anda bergantung pada dependensi pribadi, sebaiknya cerminkan functions-framework ke registry pribadi Anda. Sertakan functions-framework yang diduplikasi sebagai dependensi ke fungsi Anda untuk menghindari penginstalan paket dari internet publik.

    Setiap fungsi harus menyediakan Gemfile yang menentukan gem functions_framework, beserta gem tambahan yang diperlukan oleh fungsi. Gemfile harus berada dalam direktori yang sama dengan file app.rb yang berisi kode fungsi Anda. Selain itu, fungsi Anda harus menyediakan lockfile yang menentukan semua dependensi transitif dan versi persisnya. File ini, Gemfile.lock, juga berada di direktori yang sama bersama Gemfile.

    Saat Anda men-deploy fungsi, Cloud Run akan mendownload dan menginstal dependensi yang dideklarasikan dalam Gemfile dan Gemfile.lock menggunakan bundler.

    Gemfile mencantumkan paket yang diperlukan oleh fungsi Anda, beserta batasan versi opsional apa pun. Untuk detail selengkapnya, lihat Referensi gemfile.

    Berikut adalah contoh Gemfile:

    source "https://rubygems.org"
    
    gem "functions_framework", "~> 0.7"
    gem "google-cloud-storage", "~> 1.29"
    

    Mengemas dependensi lokal

    Anda juga dapat mengemas dan men-deploy dependensi bersama fungsi Anda. Pendekatan ini berguna jika dependensi Anda tidak tersedia menggunakan pengelola paket rubygems.

    Untuk mengemas gem secara lokal, sertakan gem dalam direktori dalam struktur direktori fungsi Anda, dan berikan jalur dalam entri Gemfile dependensi. Direktori gem harus menyertakan file gemspec yang valid, dan harus ditempatkan dalam hierarki direktori fungsi agar kodenya di-deploy bersama dengan fungsi Anda. Misalnya, Anda dapat menggunakan struktur direktori seperti berikut:

    myfunction/
    ├── Gemfile
    ├── Gemfile.lock
    ├── app.rb
    └── my_private_gem/
        ├── lib/
        |   └── my_private_gem.rb
        └── my_private_gem.gemspec
    

    Entri Gemfile mungkin terlihat seperti ini:

    source "https://rubygems.org"
    
    gem "functions_framework", "~> 0.7"
    gem "my_private_gem", path: "./my_private_gem"
    

    Lihat Referensi gemfile untuk pembahasan selengkapnya tentang mereferensikan jalur gem lokal.