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.
Memilih runtime Anda
Fungsi Cloud Run mendukung beberapa versi Ruby, yang tercantum di halaman Runtime bahasa dan image dasar yang didukung. Anda dapat memilih runtime Ruby yang diinginkan untuk fungsi Anda selama deployment.
gcloud
Untuk menggunakan fungsi Cloud Run guna men-deploy fungsi HTTP menggunakan gcloud CLI, lihat Men-deploy menggunakan Google Cloud CLI.
Konsol
Jika Anda menggunakan konsol Google Cloud , pilih runtime saat membuat dan men-deploy fungsi. Lihat panduan memulai konsolGoogle Cloud untuk mengetahui petunjuk mendetail.
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.