Membuat kueri database

Webhook Anda saat ini menggunakan data hardcode dalam fungsi accountBalanceCheck. Pada langkah tutorial ini, Anda akan membuat database Spanner, mengisinya dengan data saldo, dan memperbarui fungsi untuk mengkueri database.

Konfigurasi project

Agen Dialogflow dan database harus berada di project yang sama. Ini adalah cara termudah agar fungsi Anda memiliki akses yang aman ke database Anda. Selain itu, Anda harus mengaktifkan Spanner API.

  1. Sebelum membuat database, pilih project Anda dari Konsol Google Cloud.

    Buka pemilih project

  2. Aktifkan Spanner API untuk project.

    Mengaktifkan Spanner API

Membuat instance Spanner

Saat pertama kali menggunakan Spanner, Anda harus membuat instance, yang merupakan alokasi resource yang digunakan oleh database Spanner dalam instance tersebut.

  1. Di konsol Google Cloud, buka halaman Spanner Instances.

    Buka instance Spanner

  2. Klik Create instance.

  3. Untuk nama instance, masukkan Instance Tutorial.

  4. ID instance dimasukkan secara otomatis berdasarkan nama instance.

  5. Di bagian Choose your configuration, pertahankan opsi default Regional dan pilih location region yang sama dengan yang Anda pilih saat membuat fungsi.

  6. Di bagian Alokasikan kapasitas komputasi, masukkan 100 unit pemrosesan. Hal ini memberikan kapasitas minimal untuk tutorial.

  7. Klik Create. Konsol Google Cloud akan menampilkan halaman Overview untuk instance yang Anda buat.

Membuat database Spanner

Setelah memiliki instance, Anda harus membuat database. Untuk membuat database:

  1. Di halaman Overview instance, klik Create database.
  2. Untuk nama database, masukkan tutorial-database.
  3. Pilih dialek database Google Standard SQL.
  4. Klik Create. Konsol Google Cloud akan menampilkan halaman Overview untuk database yang Anda buat.

Membuat tabel untuk database Anda

Setelah memiliki {i>database<i}, selanjutnya Anda perlu membuat tabel untuk {i>database <i}tersebut. Untuk membuat tabel:

  1. Di bagian Tabel pada halaman Ringkasan database, klik Buat tabel.
  2. Di halaman Tulis pernyataan DDL, masukkan:

    CREATE TABLE Checking (
      AccountId INT64,
      Balance INT64,
    ) PRIMARY KEY(AccountId);
    
  3. Klik Submit. Konsol Google Cloud kembali ke halaman Overview database dan menunjukkan bahwa Pembaruan skema sedang berlangsung. Tunggu hingga update selesai.

  4. Di bagian Tabel pada halaman Ringkasan database, klik Buat tabel.

  5. Di halaman Tulis pernyataan DDL, masukkan:

    CREATE TABLE Savings (
      AccountId INT64,
      Balance INT64,
    ) PRIMARY KEY(AccountId);
    
  6. Klik Submit. Konsol Google Cloud kembali ke halaman Overview database dan menunjukkan bahwa Pembaruan skema sedang berlangsung. Tunggu hingga update selesai.

Menyisipkan data ke tabel Anda

Setelah {i>database<i} memiliki tabel, Anda perlu menambahkan data ke tabel itu. Untuk menambahkan data:

  1. Dalam daftar tabel di halaman Overview database, klik tabel Memeriksa. Konsol Google Cloud menampilkan halaman Schema pada tabel.
  2. Di menu navigasi sebelah kiri, klik Data untuk menampilkan halaman Data pada tabel.
  3. Klik Sisipkan. Konsol Google Cloud menampilkan halaman Query tabel dengan tab kueri baru yang berisi pernyataan INSERT dan SELECT. Timpa pernyataan tersebut dengan kode berikut:

    INSERT INTO Checking (AccountId, Balance)
    VALUES(1, 1000),
          (2, 2000);
    
  4. Klik Run.

  5. Di menu navigasi sebelah kiri, klik Data lagi untuk menampilkan data tabel. Pastikan tabel berisi data yang diinginkan.

  6. Klik link tutorial-database: Ringkasan untuk kembali ke halaman ringkasan database.

  7. Dalam daftar tabel di halaman Overview database, klik tabel Savings. Konsol Google Cloud menampilkan halaman Schema pada tabel.

  8. Di menu navigasi sebelah kiri, klik Data untuk menampilkan halaman Data pada tabel.

  9. Klik Sisipkan. Konsol Google Cloud menampilkan halaman Query tabel dengan tab kueri baru yang berisi pernyataan INSERT dan SELECT. Timpa pernyataan tersebut dengan kode berikut:

    INSERT INTO Savings (AccountId, Balance)
    VALUES(1, 10000),
          (2, 20000);
    
  10. Klik Run.

  11. 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 ini akan menggunakan saldo akun hardcode.

Setelah menyiapkan database, perbarui Cloud Function Anda untuk menetapkan variabel lingkungan yang diperlukan:

  1. Buka halaman ringkasan Cloud Functions.

    Buka ringkasan Cloud Functions

  2. Klik fungsi tutorial-banking-webhook untuk membuka halaman detailnya.

  3. Klik Edit.

  4. Buka bagian Setelan runtime, build, dan koneksi.

  5. Pilih tab Runtime.

  6. Tambahkan variabel berikut di bagian Variabel lingkungan runtime:

    • PROJECT_ID: project ID Anda
    • SPANNER_INSTANCE_ID: ID instance Spanner Anda (mungkin tutorial-instance)
    • SPANNER_DATABASE_ID: ID database kunci sandi Anda (mungkin tutorial-database)
  7. Klik Next.

  8. Klik Deploy.

  9. Tunggu hingga indikator status menunjukkan bahwa fungsi telah berhasil di-deploy.

Uji agen Anda

Agen Anda kini siap untuk mencoba. Klik tombol Test Agent dari konsol Dialogflow untuk membuka simulator. Coba lakukan percakapan berikut dengan agen:

Percakapan Anda Agen
1 Halo Halo, terima kasih telah memilih Bank Mandiri.
2 Saya ingin tahu saldo rekening saya Anda ingin rekening apa untuk saldo: tabungan atau giro?
3 Memeriksa Berikut saldo terbaru Anda: Rp100.000

Jika Anda memeriksa kodenya, $10 bukanlah nilai hardcode. Artinya, webhook Anda berhasil terhubung ke database, dengan saldo sebesar $10.

Pemecahan masalah

Kode webhook menyertakan laporan logging. Jika Anda mengalami masalah, coba lihat log untuk Cloud Function Anda.

Jika fungsi tidak terhubung ke database dan Anda melihat error izin di log, Anda mungkin perlu memperbaiki peran untuk akun layanan default yang digunakan oleh fungsi Anda. Akun layanan ini menggunakan format PROJECT_ID@appspot.gserviceaccount.com. Anda dapat memperbaikinya dengan salah satu cara berikut:

Informasi selengkapnya

Untuk informasi selengkapnya tentang langkah-langkah di atas, lihat: