Tujuan
Tulis, deploy, dan picu fungsi HTTP Cloud Run yang mengakses Spanner.
Biaya
Dokumen ini menggunakan fungsi Spanner dan Cloud Run, yang merupakan komponen Google Cloud yang dapat ditagih.
Untuk mengetahui informasi tentang biaya penggunaan Spanner, lihat Harga Spanner.
Untuk informasi tentang biaya penggunaan fungsi Cloud Run, termasuk pemanggilan gratis, lihat Harga fungsi Cloud Run.
Sebelum memulai
Dokumen ini mengasumsikan bahwa Anda memiliki instance Spanner bernama
test-instance
dan database bernamaexample-db
yang menggunakan skema aplikasi musik. Untuk petunjuk tentang cara membuat instance dan database dengan skema aplikasi musik, lihatPanduan memulai menggunakan konsol atau tutorial Memulai di Go ,Java ,Node.js, atau Python.Aktifkan fungsi Cloud Run dan Cloud Build API.
Instal dan lakukan inisialisasi gcloud CLI.
Jika Anda sudah menginstal gcloud CLI, update dengan menjalankan perintah berikut:
gcloud components update
Menyiapkan lingkungan pengembangan:
Menyiapkan aplikasi
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 fungsi Cloud Run 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
Albums
dari database Anda. Fungsi ini dijalankan saat Anda membuat permintaan HTTP ke endpoint fungsi.
Men-deploy cloud function
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 dari 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 go122 --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 java21 \ --memory 512MB --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Java yang didukung guna menjalankan
fungsi Anda.
Deployment fungsi mungkin memerlukan waktu hingga dua menit.
Perhatikan bahwa 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 fungsi Cloud Run di Konsol Google Cloud. Anda juga dapat membuat dan mengedit fungsi di halaman tersebut, serta mendapatkan detail dan diagnostik untuk fungsi Anda.
Picu 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 fungsi Spanner dan Cloud Run yang digunakan dalam dokumen ini, lakukan hal berikut:
Hapus instance:
gcloud spanner instances delete test-instance
Hapus 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