Webhook Anda saat ini menggunakan data hardcode dalam fungsi cruisePlanCoverage.
Pada langkah tutorial ini,
Anda akan membuat
database Spanner, mengisinya dengan tujuan yang dicakup, 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.
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 diisi berdasarkan nama instance.
Di Choose your configuration, pertahankan opsi default Regional dan pilih lokasi region yang sama dengan yang Anda pilih saat membuat fungsi.
Di Allocate compute capacity, masukkan 100 unit pemrosesan. Hal ini memberikan kapasitas minimum untuk tutorial.
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:
- Di halaman Overview instance, klik Create database.
- Untuk nama database, masukkan tutorial-database.
- Pilih dialek database Google Standard SQL.
- 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:
- Di bagian Tables pada halaman Overview database, klik Create table.
Di halaman Write DDL statements, masukkan:
CREATE TABLE Destinations ( Destination STRING(1024), Covered BOOL, ) PRIMARY KEY(Destination);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:
- Dalam daftar tabel di halaman Ringkasan database, klik tabel Tujuan. Konsol Google Cloud menampilkan halaman Schema tabel Destinations.
- Di menu navigasi sebelah kiri, klik Data untuk menampilkan halaman Data tabel Tujuan.
Klik Insert. Konsol Google Cloud menampilkan halaman Kueri tabel Tujuan dengan tab kueri baru yang berisi pernyataan
INSERTdanSELECT. Ganti pernyataan tersebut dengan pernyataan berikut:INSERT INTO Destinations (Destination, Covered) VALUES('anguilla', TRUE), ('canada', TRUE), ('china', TRUE), ('italy', TRUE), ('mexico', TRUE), ('spain', FALSE);Klik Run.
Di menu navigasi kiri, klik Data lagi untuk menampilkan data tabel Tujuan. Konfirmasi bahwa tabel berisi data yang diinginkan.
Perbarui Cloud Function untuk mengkueri database
Fungsi cruisePlanCoverage dalam kode webhook
memeriksa apakah variabel lingkungan tertentu ditetapkan
dengan informasi untuk terhubung ke database.
Jika variabel lingkungan ini tidak ditetapkan,
fungsi menggunakan daftar tujuan yang di-hardcode.
Setelah menyiapkan database, perbarui Cloud Function Anda untuk menetapkan variabel lingkungan yang diperlukan:
Buka halaman ringkasan Cloud Functions.
Klik fungsi tutorial-telecommunications-webhook untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Runtime, build and connections settings.
Pilih tab Runtime.
Tambahkan variabel berikut di bagian Variabel lingkungan runtime:
PROJECT_ID: project ID AndaSPANNER_INSTANCE_ID: ID instance Spanner Anda (kemungkinantutorial-instance)SPANNER_DATABASE_ID: ID database Spanner Anda (kemungkinantutorial-database)
Klik Berikutnya.
Klik Deploy.
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! Saya adalah agen telekomunikasi virtual. Saya dapat membantu Anda menyelesaikan pertanyaan terkait penagihan dan paket, memecahkan masalah, serta menambahkan rencana perjalanan dan pelayaran. Ada yang bisa saya bantu hari ini? |
| 2 | Saya ingin menambahkan paket pelayaran | Izinkan kami memeriksanya. Berapa nomor telepon Anda yang terdaftar di akun kami? |
| 3 | 123-123-1234 | Berapa hari pelayaran Anda? |
| 4 | 7 | Opsi 1 mencakup layanan telepon dan SMS. Biayanya $[XX]/hari. Info selengkapnya di sini [URL]. Opsi 2 mencakup layanan telepon, SMS, dan data. Biayanya $[XX]/hari. Info selengkapnya di sini [URL]. Paket pelayaran mana yang ingin Anda tambahkan? |
| 5 | Opsi 1 | Oke. Kami telah menambahkan paket tersebut ke akun Anda. Saat berlayar, Anda mungkin juga memerlukan cakupan di darat. Di pelabuhan mana Anda akan berhenti? |
| 6 | Italia | Dan, berapa hari Anda akan berada di sana? |
| 7 | 3 | Kabar baik! Italia memiliki cakupan gratis di darat. Anda sudah siap. Ada hal lain yang dapat kami bantu? |
Jika Anda memeriksa kodenya, Italia tidak ada dalam daftar tujuan yang tercakup yang dikodekan secara permanen. Artinya, webhook Anda telah berhasil terhubung ke database, yang mencakup Italia.
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:
Jika akun layanan default ditampilkan di halaman utama IAM, ubah izin untuk akun layanan tersebut. 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 mengetahui 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