Saat ini webhook Anda menggunakan data hardcode dalam fungsi accountBalanceCheck
.
Pada langkah tutorial ini,
Anda akan membuat database
Spanner, mengisinya dengan data saldo,
dan memperbarui fungsi untuk membuat kueri database.
Konfigurasi project
Pastikan agen Dialogflow dan database berada di project yang sama. Ini adalah cara termudah bagi fungsi Anda untuk memiliki akses yang aman ke database. Selain itu, Anda harus mengaktifkan Spanner API.
Sebelum membuat database, pilih project Anda dari konsol Google Cloud.
Aktifkan Spanner API untuk project.
Membuat instance Spanner
Saat pertama kali menggunakan Spanner, Anda harus membuat instance, yang merupakan alokasi resource yang digunakan oleh database Spanner dalam instance tersebut.
Di konsol Google Cloud, buka halaman Spanner Instances.
Klik Create instance.
Untuk nama instance, masukkan Tutorial Instance.
ID instance akan otomatis dimasukkan berdasarkan nama instance.
Di Choose your configuration, pertahankan opsi default Regional dan pilih location region yang sama dengan yang Anda pilih saat membuat fungsi.
Di Allocate compute capacity, masukkan 100 unit pemrosesan. Hal ini memberikan kapasitas minimal untuk tutorial.
Klik Create. Konsol Google Cloud akan menampilkan halaman Ringkasan untuk instance yang Anda buat.
Membuat database Spanner
Setelah memiliki instance, Anda perlu membuat database. Untuk membuat database:
- Di halaman Ringkasan instance, klik Buat database.
- Untuk nama database, masukkan tutorial-database.
- Pilih dialek database Google Standard SQL.
- Klik Create. Konsol Google Cloud akan menampilkan halaman Ringkasan untuk database yang Anda buat.
Membuat tabel untuk database Anda
Setelah memiliki database, Anda perlu membuat tabel untuk database. Untuk membuat tabel:
- Di bagian Tables pada halaman Overview database, klik Create table.
Di halaman Tulis pernyataan DDL, masukkan:
CREATE TABLE Checking ( AccountId INT64, Balance INT64, ) PRIMARY KEY(AccountId);
Klik Kirim. Konsol Google Cloud akan kembali ke halaman Ringkasan database dan menunjukkan bahwa Pembaruan skema sedang berlangsung. Tunggu hingga update selesai.
Di bagian Tables pada halaman Overview database, klik Create table.
Di halaman Tulis pernyataan DDL, masukkan:
CREATE TABLE Savings ( AccountId INT64, Balance INT64, ) PRIMARY KEY(AccountId);
Klik Kirim. Konsol Google Cloud akan kembali ke halaman Ringkasan database dan menunjukkan bahwa Pembaruan skema sedang berlangsung. Tunggu hingga update selesai.
Menyisipkan data ke dalam tabel
Setelah database memiliki tabel, Anda perlu menambahkan data ke tabel. Untuk menambahkan data:
- Dalam daftar tabel di halaman Ringkasan database, klik tabel Checking. Konsol Google Cloud akan menampilkan halaman Skema tabel.
- Di menu navigasi sebelah kiri, klik Data untuk menampilkan halaman Data tabel.
Klik Sisipkan. Konsol Google Cloud menampilkan halaman Kueri tabel dengan tab kueri baru yang berisi pernyataan
INSERT
danSELECT
. Ganti pernyataan tersebut dengan pernyataan berikut:INSERT INTO Checking (AccountId, Balance) VALUES(1, 1000), (2, 2000);
Klik Run.
Di menu navigasi sebelah kiri, klik Data lagi untuk menampilkan data tabel. Pastikan tabel berisi data yang diinginkan.
Klik link tutorial-database: Overview untuk kembali ke halaman ringkasan database.
Dalam daftar tabel di halaman Ringkasan database, klik tabel Savings. Konsol Google Cloud akan menampilkan halaman Skema tabel.
Di menu navigasi sebelah kiri, klik Data untuk menampilkan halaman Data tabel.
Klik Sisipkan. Konsol Google Cloud menampilkan halaman Kueri tabel dengan tab kueri baru yang berisi pernyataan
INSERT
danSELECT
. Ganti pernyataan tersebut dengan pernyataan berikut:INSERT INTO Savings (AccountId, Balance) VALUES(1, 10000), (2, 20000);
Klik Run.
Di menu navigasi sebelah kiri, klik Data lagi untuk menampilkan data tabel. Pastikan tabel berisi data yang diinginkan.
Memperbarui Cloud Function untuk membuat kueri database
Fungsi accountBalanceCheck
dalam kode webhook
memeriksa apakah variabel lingkungan tertentu ditetapkan
dengan informasi untuk terhubung ke database.
Jika variabel lingkungan ini tidak ditetapkan, fungsi akan menggunakan saldo akun yang di-hardcode.
Setelah menyiapkan database, update Cloud Functions untuk menetapkan variabel lingkungan yang diperlukan:
Buka halaman ringkasan Cloud Functions.
Klik fungsi tutorial-banking-webhook untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Setelan runtime, build, dan koneksi.
Pilih tab Runtime.
Tambahkan variabel berikut di bagian Variabel lingkungan runtime:
PROJECT_ID
: project ID AndaSPANNER_INSTANCE_ID
: ID instance Spanner Anda (mungkintutorial-instance
)SPANNER_DATABASE_ID
: ID database spanner Anda (mungkintutorial-database
)
Klik Berikutnya.
Klik Deploy.
Tunggu hingga indikator status menunjukkan bahwa fungsi tersebut telah berhasil di-deploy.
Menguji agen
Agen Anda kini siap untuk dicoba. Klik tombol Test Agent dari konsol Dialogflow untuk membuka simulator. Coba lakukan percakapan berikut dengan agen:
Giliran percakapan | Anda | Agen |
---|---|---|
1 | Halo | Halo, terima kasih telah memilih ACME Bank. |
2 | Saya ingin mengetahui saldo akun saya | Untuk akun apa Anda ingin mengetahui saldo: tabungan atau giro? |
3 | Giro | Berikut saldo terbaru Anda: Rp100.000 |
Jika Anda memeriksa kode, $10 bukan nilai hardcode. Artinya, webhook Anda berhasil terhubung ke database, yang memiliki saldo $10.
Pemecahan masalah
Kode webhook menyertakan pernyataan logging. Jika Anda mengalami masalah, coba lihat log untuk Cloud Functions Anda.
Jika fungsi Anda tidak terhubung ke database, dan Anda melihat error izin dalam log, Anda mungkin perlu memperbaiki peran untuk akun layanan default yang digunakan oleh fungsi Anda.
Akun layanan ini memiliki format
PROJECT_ID@
.
Anda dapat memperbaikinya dengan salah satu cara berikut:
Jika akun layanan default ditampilkan di halaman utama IAM, ubah izin untuk akun layanan. Peran Editor akan berfungsi, tetapi Anda mungkin menginginkan peran yang lebih terperinci dalam skenario produksi.
Jika akun layanan default tidak ditampilkan di halaman utama IAM, berikan peran yang diperlukan dengan menambahkan akun layanan sebagai akun utama baru.
Atau, Anda dapat menggunakan akun layanan yang Anda buat.
Informasi selengkapnya
Untuk informasi selengkapnya tentang langkah-langkah di atas, lihat:
- Menggunakan Cloud Spanner dengan Cloud Functions
- Membuat dan mengkueri database menggunakan konsol Google Cloud
- Bahasa definisi data SQL Standar Google
- Bahasa manipulasi data SQL Standar Google