Webhook Anda saat ini menggunakan data hardcode dalam fungsi cruisePlanCoverage
.
Pada langkah tutorial ini, Anda akan membuat database Spanner, mengisinya dengan tujuan yang tercakup, 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.
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 Instance Tutorial.
ID instance dimasukkan secara otomatis berdasarkan nama instance.
Di bagian Choose your configuration, pertahankan opsi default Regional dan pilih location region yang sama dengan yang Anda pilih saat membuat fungsi.
Di bagian Alokasikan kapasitas komputasi, masukkan 100 unit pemrosesan. Hal ini memberikan kapasitas minimal untuk tutorial.
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:
- Di halaman Overview instance, klik Create database.
- Untuk nama database, masukkan tutorial-database.
- Pilih dialek database Google Standard SQL.
- Klik Create. Konsol Google Cloud akan menampilkan halaman Overview untuk database yang Anda buat.
Membuat tabel untuk {i>database<i} Anda
Setelah memiliki {i>database<i}, selanjutnya Anda perlu membuat tabel untuk {i>database tersebut<i}. Untuk membuat tabel:
- Di bagian Tabel pada halaman Ringkasan database, klik Buat tabel.
Di halaman Tulis pernyataan DDL, masukkan:
CREATE TABLE Destinations ( Destination STRING(1024), Covered BOOL, ) PRIMARY KEY(Destination);
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
Sekarang setelah {i>database<i} Anda memiliki tabel, Anda perlu menambahkan data ke tabel itu. Untuk menambahkan data:
- Dalam daftar tabel di halaman Overview database, klik tabel Destinations. Konsol Google Cloud akan menampilkan halaman Schema pada tabel Tujuan.
- Di menu navigasi sebelah kiri, klik Data untuk menampilkan halaman Data pada tabel Tujuan.
Klik Sisipkan. Konsol Google Cloud menampilkan halaman Query tabel Tujuan dengan tab kueri baru yang berisi pernyataan
INSERT
danSELECT
. Timpa pernyataan tersebut dengan kode berikut:INSERT INTO Destinations (Destination, Covered) VALUES('anguilla', TRUE), ('canada', TRUE), ('china', TRUE), ('italy', TRUE), ('mexico', TRUE), ('spain', FALSE);
Klik Run.
Di menu navigasi sebelah kiri, klik Data lagi untuk menampilkan data tabel Tujuan. Pastikan tabel berisi data yang diinginkan.
Memperbarui Cloud Function untuk membuat kueri 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 akan 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 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 kunci sandi Anda (mungkintutorial-database
)
Klik Next.
Klik Deploy.
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! Saya adalah agen telekomunikasi virtual. Saya dapat membantu Anda menyelesaikan pertanyaan terkait penagihan dan rencana, memecahkan masalah, serta menambahkan rencana perjalanan dan pelayaran. Ada yang bisa saya bantu? |
2 | Saya ingin menambahkan paket kapal pesiar | Saya akan mencarikan Anda. Berapa nomor telepon Anda di kami? |
3 | 123-123-1234 | Berapa hari perjalanan Anda untuk pelayaran? |
4 | 7 | Opsi 1 mencakup ucapan dan teks. Harganya $[XX]/hari. Info selengkapnya di sini [URL]. Opsi 2 mencakup panggilan, teks, dan data. Harganya $[XX]/hari. Info selengkapnya di sini [URL]. Paket kapal pesiar mana yang ingin Anda tambahkan? |
5 | Opsi 1 | Oke. Saya telah menambahkan paket tersebut ke akun Anda. Saat berada di kapal pesiar, Anda mungkin juga memerlukan cakupan darat. Di port mana Anda akan berhenti? |
6 | Italia | Dan, berapa hari Anda menghabiskan waktu di sana? |
7 | 3 | Kabar baik! Italia memiliki cakupan gratis atas daratan. Anda sudah siap. Apakah ada hal lain yang bisa saya bantu? |
Jika Anda memeriksa kodenya, Italia tidak ada dalam daftar hardcode dari tujuan yang tercakup. Ini berarti webhook Anda berhasil terhubung ke database, termasuk Italia.
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:
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
- Buat dan lakukan kueri database menggunakan Konsol Google Cloud
- Bahasa definisi data SQL Standar Google
- Bahasa manipulasi data SQL Standar Google