Tujuan
Tulis, deploy, dan picu HTTP Cloud Function yang mengakses Spanner.
Biaya
Dokumen ini menggunakan Spanner dan Cloud Functions, yang merupakan komponen Google Cloud yang dapat ditagih.
Untuk mengetahui informasi tentang biaya penggunaan Spanner, lihat Harga Spanner.
Untuk informasi tentang biaya penggunaan Cloud Functions, termasuk pemanggilan gratis, lihat Harga Cloud Functions.
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.Mengaktifkan Cloud Functions 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 sampel sebagai file ZIP dan mengekstraknya.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Atau, Anda dapat mendownload sampel sebagai file ZIP dan mengekstraknya.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Atau, Anda dapat mendownload sampel sebagai file ZIP dan mengekstraknya.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Atau, Anda dapat mendownload sampel sebagai file ZIP dan mengekstraknya.
Beralihlah ke direktori yang berisi kode contoh Cloud 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
Albums
dari database Anda. Fungsi ini dijalankan saat Anda membuat permintaan HTTP ke endpoint fungsi.
Menerapkan fungsi
Untuk men-deploy fungsi dengan pemicu HTTP, jalankan perintah berikut di direktori spanner
:
Node.js
gcloud functions deploy nodejs-spanner-function \ --gen2 \ --runtime=nodejs20 \ --region=REGION
\ --source=. \ --entry-point=spannerQuickstart
--trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime dari versi Node.js yang didukung untuk menjalankan fungsi Anda.
Python
gcloud functions deploy python-spanner-function \ --gen2 \ --runtime=python312 \ --region=REGION
\ --source=. \ --entry-point=spanner_read_data
--trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Python yang didukung untuk menjalankan
fungsi Anda.
Go
gcloud functions deploy go-spanner-function \ --gen2 \ --runtime=go121 \ --region=REGION
\ --source=. \ --entry-point=HelloSpanner
--trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime versi Go yang didukung untuk menjalankan fungsi Anda.
Java
gcloud functions deploy java-spanner-function \ --gen2 \ --runtime=java17 \ --region=REGION
\ --source=. \ --entry-point=functions.HelloSpanner \ --memory=512MB
--trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Java yang didukung guna menjalankan
fungsi Anda.
Ganti REGION dengan nama region Google Cloud tempat Anda ingin men-deploy fungsi
(misalnya, us-west1
).
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 pada halaman Cloud Functions di Konsol Google Cloudsole. 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:
curl URL
Ganti URL dengan nilai URL yang ditampilkan saat fungsi Anda selesai di-deploy.
Anda akan melihat output yang menunjukkan 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 ke akun Google Cloud Anda untuk resource Spanner dan Cloud Functions yang digunakan dalam dokumen ini:
Hapus instance:
gcloud spanner instances delete test-instance
Hapus fungsi yang Anda deploy:
Node.js
gcloud functions delete nodejs-spanner-function
Python
gcloud functions delete python-spanner-function
Go
gcloud functions delete go-spanner-function
Java
gcloud functions delete java-spanner-function