Pasangkan Cloud Run dengan Firebase Hosting untuk membuat dan menayangkan konten dinamis Anda atau membuat REST API sebagai layanan mikro.
Dengan menggunakan Cloud Run , Anda dapat men-deploy aplikasi yang dikemas dalam image container. Kemudian, dengan menggunakan Firebase Hosting, Anda dapat mengarahkan permintaan HTTPS untuk memicu aplikasi dalam container.
- Cloud Run mendukung beberapa bahasa (termasuk Go, Node.js, Python, dan Java), memberi Anda fleksibilitas untuk menggunakan bahasa pemrograman dan framework pilihan Anda.
- Cloud Run menskalakan gambar container Anda secara otomatis dan horizontal untuk menangani permintaan yang diterima, lalu menurunkan skala saat permintaan menurun.
- Anda hanya membayar CPU, memori, dan jaringan yang digunakan selama penanganan permintaan.
Misalnya kasus penggunaan dan contoh untuk Cloud Run yang terintegrasi dengan Firebase Hosting, kunjungi ikhtisar tanpa server kami.
Panduan ini menunjukkan cara untuk:
- Tulis aplikasi Hello World sederhana
- Kemas aplikasi dan unggah ke Container Registry
- Deploy image container ke Cloud Run
- Permintaan Hosting langsung ke aplikasi kemas Anda
Perhatikan bahwa untuk meningkatkan kinerja penyajian konten dinamis, Anda dapat menyetel setelan cache secara opsional .
Sebelum kamu memulai
Sebelum menggunakan Cloud Run, Anda harus menyelesaikan beberapa tugas awal, termasuk menyiapkan akun Cloud Billing, mengaktifkan Cloud Run API, dan menginstal fitur baris perintah gcloud
.
Siapkan penagihan untuk proyek Anda
Cloud Run menawarkan kuota penggunaan gratis , tetapi Anda tetap harus memiliki akun Cloud Billing yang terkait dengan project Firebase Anda untuk menggunakan atau mencoba Cloud Run.
Aktifkan API dan instal SDK
Aktifkan Cloud Run API di konsol Google API:
Buka halaman Cloud Run API di konsol Google API.
Saat diminta, pilih proyek Firebase Anda.
Klik Aktifkan di halaman Cloud Run API.
Instal dan inisialisasi Cloud SDK.
Periksa apakah alat
gcloud
dikonfigurasi untuk proyek yang benar:gcloud config list
Langkah 1 : Tulis contoh aplikasinya
Perhatikan bahwa Cloud Run mendukung banyak bahasa lain selain bahasa yang ditampilkan dalam contoh berikut.
Pergi
Buat direktori baru bernama
helloworld-go
, lalu ubah direktori ke dalamnya:mkdir helloworld-go
cd helloworld-go
Buat file baru bernama
helloworld.go
, lalu tambahkan kode berikut:Kode ini membuat server web dasar yang mendengarkan port yang ditentukan oleh variabel lingkungan
PORT
.
Aplikasi Anda sudah selesai dan siap untuk dikemas dan diunggah ke Container Registry.
Node.js
Buat direktori baru bernama
helloworld-nodejs
, lalu ubah direktori ke dalamnya:mkdir helloworld-nodejs
cd helloworld-nodejs
Buat file
package.json
dengan konten berikut:Buat file baru bernama
index.js
, lalu tambahkan kode berikut:Kode ini membuat server web dasar yang mendengarkan port yang ditentukan oleh variabel lingkungan
PORT
.
Aplikasi Anda sudah selesai dan siap untuk dikemas dan diunggah ke Container Registry.
Piton
Buat direktori baru bernama
helloworld-python
, lalu ubah direktori ke dalamnya:mkdir helloworld-python
cd helloworld-python
Buat file baru bernama
app.py
, lalu tambahkan kode berikut:Kode ini membuat server web dasar yang mendengarkan port yang ditentukan oleh variabel lingkungan
PORT
.
Aplikasi Anda sudah selesai dan siap untuk dikemas dan diunggah ke Container Registry.
Jawa
Instal Java SE 8 atau JDK dan CURL yang lebih baru.
Perhatikan bahwa kita hanya perlu melakukan ini untuk membuat proyek web baru di langkah selanjutnya. Dockerfile, yang akan dijelaskan nanti, akan memuat semua dependensi ke dalam container.
Dari konsol, buat proyek web kosong baru menggunakan cURL lalu unzip perintah:
curl https://start.spring.io/starter.zip \ -d dependencies=web \ -d name=helloworld \ -d artifactId=helloworld \ -o helloworld.zip
unzip helloworld.zip
Ini menciptakan proyek SpringBoot.
Perbarui kelas
SpringBootApplication
disrc/main/java/com/example/helloworld/HelloworldApplication.java
dengan menambahkan@RestController
untuk menangani/
pemetaan dan juga menambahkan bidang@Value
untuk menyediakan variabel lingkunganTARGET
:Kode ini membuat server web dasar yang mendengarkan port yang ditentukan oleh variabel lingkungan
PORT
.
Aplikasi Anda sudah selesai dan siap untuk dikemas dan diunggah ke Container Registry.
Langkah 2 : Kemas aplikasi dan unggah ke Container Registry
Kemas aplikasi sampel dengan membuat file baru bernama
Dockerfile
di direktori yang sama dengan file sumber. Salin konten berikut ke dalam file Anda.Pergi
Node.js
Piton
Jawa
Buat image container Anda menggunakan Cloud Build dengan menjalankan perintah berikut dari direktori yang berisi Dockerfile Anda:
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
Setelah berhasil, Anda akan melihat pesan SUKSES yang berisi nama gambar
(gcr.io/ PROJECT_ID /helloworld
).
Image container sekarang disimpan di Container Registry dan dapat digunakan kembali jika diinginkan.
Perhatikan bahwa, alih-alih Cloud Build, Anda dapat menggunakan versi Docker yang diinstal secara lokal untuk membuat container secara lokal .
Langkah 3 : Deploy image container ke Cloud Run
Deploy menggunakan perintah berikut:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
Saat diminta:
- Pilih wilayah (misalnya
us-central1
) - Konfirmasikan nama layanan (misalnya,
helloworld
) - Tanggapi
Y
untuk mengizinkan pemanggilan yang tidak diautentikasi
- Pilih wilayah (misalnya
Tunggu beberapa saat hingga penerapan selesai. Jika berhasil, baris perintah menampilkan URL layanan. Misalnya:
https://helloworld- RANDOM_HASH -us-central1.a.run.appKunjungi wadah yang diterapkan dengan membuka URL layanan di browser web.
Langkah selanjutnya memandu Anda tentang cara mengakses aplikasi dalam container ini dari URL Firebase Hosting sehingga dapat menghasilkan konten dinamis untuk situs yang dihosting oleh Firebase.
Langkah 4: Arahkan permintaan hosting ke aplikasi dalam container Anda
Dengan aturan penulisan ulang , Anda dapat mengarahkan permintaan yang cocok dengan pola tertentu ke satu tujuan.
Contoh berikut menunjukkan cara mengarahkan semua permintaan dari halaman /helloworld
di situs Hosting Anda untuk memicu startup dan menjalankan instance container helloworld
Anda.
Pastikan bahwa:
Anda memiliki Firebase CLI versi terbaru .
Anda telah menginisialisasi Firebase Hosting.
Untuk instruksi terperinci tentang penginstalan CLI dan menginisialisasi Hosting, lihat panduan Memulai untuk Hosting .
Buka file
firebase.json
Anda.Tambahkan konfigurasi
rewrite
berikut di bawah bagianhosting
:"hosting": { // ... // Add the "rewrites" attribute within "hosting" "rewrites": [ { "source": "/helloworld", "run": { "serviceId": "helloworld", // "service name" (from when you deployed the container image) "region": "us-central1" // optional (if omitted, default is us-central1) } } ] }
Terapkan konfigurasi hosting Anda ke situs Anda dengan menjalankan perintah berikut dari root direktori proyek Anda:
firebase deploy
Penampung Anda kini dapat dijangkau melalui URL berikut:
Subdomain Firebase Anda:
PROJECT_ID .web.app/
danPROJECT_ID .firebaseapp.com/
Setiap domain khusus yang terhubung :
CUSTOM_DOMAIN /
Kunjungi halaman konfigurasi Hosting untuk detail lebih lanjut tentang aturan penulisan ulang . Anda juga dapat mempelajari urutan prioritas respons untuk berbagai konfigurasi Hosting.
Uji secara lokal
Selama pengembangan, Anda dapat menjalankan dan menguji image container secara lokal. Untuk petunjuk mendetail, kunjungi dokumentasi Cloud Run .
Langkah selanjutnya
Siapkan caching konten dinamis Anda di CDN global.
Berinteraksi dengan layanan Firebase lainnya menggunakan Firebase Admin SDK .
Pelajari Cloud Run lebih lanjut, termasuk panduan cara mendetail untuk menyiapkan, mengelola, dan mengonfigurasi container.
Tinjau harga dan kuota serta batas untuk Cloud Run.