Tujuan
Menulis, men-deploy, dan memicu fungsi Cloud Run HTTP yang mengakses Spanner.
Biaya
Dokumen ini menggunakan Spanner dan Cloud Run Functions, yang merupakan komponen Google Cloudyang dapat ditagih.
Untuk mengetahui informasi tentang biaya penggunaan Spanner, lihat Harga Spanner.
Untuk mengetahui informasi tentang biaya penggunaan Cloud Run Functions, termasuk pemanggilan gratis, lihat Harga Cloud Run Functions.
Sebelum memulai
Dokumen ini mengasumsikan bahwa Anda memiliki instance Spanner bernama
test-instancedan database bernamaexample-dbyang menggunakan skema aplikasi musik. Untuk mengetahui petunjuk tentang cara membuat instance dan database dengan skema aplikasi musik, lihat Panduan memulai menggunakan konsol atau tutorial Memulai di Go ,Java ,Node.js, atau Python.Aktifkan Cloud Run Functions dan Cloud Build API.
Instal dan lakukan inisialisasi gcloud CLI.
Jika Anda sudah menginstal gcloud CLI, update dengan menjalankan perintah berikut:
gcloud components updateSiapkan lingkungan pengembangan:
Menyiapkan aplikasi
Buat clone repositori aplikasi contoh ke komputer lokal Anda:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Atau, Anda dapat mendownload contoh dalam file ZIP dan mengekstraknya.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Atau, Anda dapat mendownload contoh dalam file ZIP dan mengekstraknya.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Atau, Anda dapat mendownload contoh dalam file ZIP dan mengekstraknya.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Atau, Anda dapat mendownload contoh dalam file ZIP dan mengekstraknya.
Beralihlah ke direktori yang berisi kode contoh Cloud Run Functions untuk mengakses Spanner:
Node.js
cd nodejs-docs-samples/functions/spanner/
Python
cd python-docs-samples/functions/spanner/
Go
cd golang-samples/functions/spanner/
Java
cd java-docs-samples/functions/spanner/
Lihat kode contoh:
Node.js
Python
Go
Java
Fungsi ini mengirim kueri SQL untuk mengambil semua data
Albumsdari database Anda. Fungsi ini dijalankan saat Anda membuat permintaan HTTP ke endpoint fungsi.
Men-deploy fungsi
Untuk men-deploy fungsi dengan pemicu HTTP,
jalankan perintah berikut di direktori spanner:
Node.js
gcloud functions deploy get \ --runtime nodejs22 --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Node.js yang didukung untuk menjalankan
fungsi Anda.
Python
gcloud functions deploy spanner_read_data \ --runtime python312 --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Python yang didukung untuk menjalankan
fungsi Anda.
Go
gcloud functions deploy HelloSpanner \ --runtime go121 --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Go yang didukung untuk menjalankan
fungsi Anda.
Java
gcloud functions deploy java-spanner-function \ --entry-point functions.HelloSpanner \ --runtime java17 \ --memory 512MB --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Java yang didukung untuk menjalankan
fungsi Anda.
Deployment fungsi mungkin memerlukan waktu hingga dua menit.
Catat nilai url yang ditampilkan saat fungsi Anda selesai di-deploy. Anda akan menggunakannya
saat memicu fungsi.
Anda dapat melihat fungsi yang di-deploy di halaman Cloud Run Functions di konsolGoogle Cloud . Anda juga dapat membuat dan mengedit fungsi di halaman tersebut, serta mendapatkan detail dan diagnostik untuk fungsi Anda.
Memicu fungsi
Buat permintaan HTTP ke fungsi Anda:
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/get"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/spanner_read_data"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloSpanner"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-spanner-function"
dengan REGION dan PROJECT_ID
cocok dengan nilai yang terlihat di terminal Anda
saat fungsi selesai di-deploy. Anda akan melihat output yang menampilkan hasil kueri SQL,
dengan asumsi Anda telah menyelesaikan
tutorial Memulai dan mengisi database:
SingerId: 2, AlbumId: 2, AlbumTitle: Forever Hold Your Peace
SingerId: 1, AlbumId: 2, AlbumTitle: Go, Go, Go
SingerId: 2, AlbumId: 1, AlbumTitle: Green
SingerId: 2, AlbumId: 3, AlbumTitle: Terrified
SingerId: 1, AlbumId: 1, AlbumTitle: Total Junk
Anda juga dapat membuka URL fungsi di browser untuk melihat hasil kueri SQL.
Pembersihan
Agar tidak menimbulkan biaya tambahan pada akun Google Cloud Anda untuk resource Spanner dan Cloud Run Functions yang digunakan dalam dokumen ini, lakukan hal berikut:
Hapus instance:
gcloud spanner instances delete test-instanceHapus fungsi yang Anda deploy:
Node.js
gcloud functions delete get
Python
gcloud functions delete spanner_read_data
Go
gcloud functions delete HelloSpanner
Java
gcloud functions delete java-spanner-function