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 membuat kueri database.

Konfigurasi project

Agen Dialogflow dan database harus berada dalam project yang sama. Ini adalah cara termudah agar fungsi Anda memiliki akses 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.

    Aktifkan 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 Tutorial Instance.

  4. ID instance akan otomatis diisi berdasarkan nama instance.

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

  6. Di Allocate compute capacity, masukkan 100 unit pemrosesan. Hal ini memberikan kapasitas minimum untuk tutorial.

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

Membuat database Spanner

Setelah memiliki instance, Anda perlu 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 menampilkan halaman Overview untuk database yang Anda buat.

Membuat tabel untuk database Anda

Setelah memiliki database, Anda perlu membuat tabel untuk database tersebut. Untuk membuat tabel:

  1. Di bagian Tables pada halaman Overview database, klik Create table.
  2. Di halaman Write DDL statements, masukkan:

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

  4. Di bagian Tables pada halaman Overview database, klik Create table.

  5. Di halaman Write DDL statements, masukkan:

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

Menyisipkan data ke dalam tabel

Setelah database Anda memiliki tabel, Anda perlu menambahkan data ke tabel tersebut. Untuk menambahkan data:

  1. Dalam daftar tabel di halaman Ringkasan database, klik tabel Checking. Konsol Google Cloud menampilkan halaman Schema tabel.
  2. Di menu navigasi kiri, klik Data untuk menampilkan halaman Data tabel.
  3. Klik Insert. Konsol Google Cloud menampilkan halaman Kueri tabel dengan tab kueri baru yang berisi pernyataan INSERT dan SELECT. Ganti pernyataan tersebut dengan pernyataan berikut:

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

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

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

  7. Dalam daftar tabel di halaman Ringkasan database, klik tabel Penghematan. Konsol Google Cloud menampilkan halaman Schema tabel.

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

  9. Klik Insert. Konsol Google Cloud menampilkan halaman Kueri tabel dengan tab kueri baru yang berisi pernyataan INSERT dan SELECT. Ganti pernyataan tersebut dengan pernyataan berikut:

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

  11. Di menu navigasi kiri, klik Data lagi untuk menampilkan data tabel. Konfirmasi bahwa tabel berisi data yang diinginkan.

Perbarui Cloud Function untuk mengkueri 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, 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 Runtime, build and connections settings.

  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 (kemungkinan tutorial-instance)
    • SPANNER_DATABASE_ID: ID database Spanner Anda (kemungkinan tutorial-database)
  7. Klik Berikutnya.

  8. Klik Deploy.

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

Menguji agen Anda

Agen Anda kini siap 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 Saldo untuk akun mana yang Anda inginkan: tabungan atau giro?
3 Giro Berikut saldo terbaru Anda: Rp100.000

Jika Anda memeriksa kode, $10 bukanlah nilai yang di-hard code. Artinya, webhook Anda telah berhasil terhubung ke database, yang memiliki saldo sebesar $10.

Pemecahan masalah

Kode webhook mencakup pernyataan logging. Jika Anda mengalami masalah, coba lihat log untuk Cloud Function Anda.

Jika fungsi Anda 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 berbentuk PROJECT_ID@appspot.gserviceaccount.com. Anda dapat memperbaikinya dengan salah satu cara berikut:

Informasi selengkapnya

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