שאילתה של מסד נתונים

ה-webhook משתמש כרגע בנתונים בתוך הקוד בפונקציה accountBalanceCheck. בשלב הזה של המדריך תיצרו מסד נתונים ב-Spanner, תאכלסו אותו בנתוני יתרה ותעדכנו את הפונקציה כדי לשלוח שאילתות למסד הנתונים.

הגדרות אישיות של פרויקט

חשוב שהנציג ב-Dialogflow ומסד הנתונים יהיו באותו פרויקט. זו הדרך הקלה ביותר לתת לפונקציה גישה מאובטחת למסד הנתונים. בנוסף, צריך להפעיל את Spanner API.

  1. לפני שיוצרים את מסד הנתונים, בוחרים את הפרויקט במסוף Google Cloud .

    כניסה לדף לבחירת הפרויקט

  2. מפעילים את Spanner API בפרויקט.

    הפעלת Spanner API

יצירת מכונה של Spanner

בפעם הראשונה שמשתמשים ב-Spanner, צריך ליצור מכונה, שהיא הקצאה של משאבים שמשמשים את מסדי הנתונים של Spanner באותה מכונה.

  1. נכנסים לדף Spanner Instances במסוף Google Cloud .

    כניסה לדף Spanner instances

  2. לוחצים על Create instance.

  3. בשם המכונה, מזינים Tutorial Instance.

  4. מזהה המכונה מוזן אוטומטית על סמך שם המכונה.

  5. בקטע Choose your configuration, משאירים את אפשרות ברירת המחדל Regional ובוחרים את אותו מיקום אזורי שבחרתם כשנוצרה הפונקציה.

  6. בקטע Allocate compute capacity, מזינים 100 יחידות עיבוד. כך תהיה קיבולת מינימלית למדריך.

  7. לוחצים על יצירה. במסוף Google Cloud יוצג הדף Overview של המכונה שיצרתם.

יצירת מסד נתונים ב-Spanner

עכשיו, אחרי שיצרתם מכונה, אתם צריכים ליצור מסד נתונים. כדי ליצור מסד נתונים:

  1. בדף Overview של המכונה, לוחצים על Create database.
  2. בשם מסד הנתונים, מזינים tutorial-database.
  3. בוחרים את הדיאלקט של מסד הנתונים Google Standard SQL.
  4. לוחצים על יצירה. במסוף Google Cloud יוצג הדף Overview של מסד הנתונים שיצרתם.

יצירת טבלאות למסד הנתונים

עכשיו, כשיש לכם מסד נתונים, אתם צריכים ליצור בו טבלאות. כדי ליצור טבלאות:

  1. בקטע Tables בדף Overview של מסד הנתונים, לוחצים על Create table.
  2. בדף Write DDL statements, מזינים את הפרטים הבאים:

    CREATE TABLE Checking (
      AccountId INT64,
      Balance INT64,
    ) PRIMARY KEY(AccountId);
    
  3. לוחצים על שליחה. מסוף Google Cloud חוזר לדף Overview של מסד הנתונים, ומוצג בו שמתבצעים Schema updates. מחכים עד שהעדכון יסתיים.

  4. בקטע Tables בדף Overview של מסד הנתונים, לוחצים על Create table.

  5. בדף Write DDL statements, מזינים את הפרטים הבאים:

    CREATE TABLE Savings (
      AccountId INT64,
      Balance INT64,
    ) PRIMARY KEY(AccountId);
    
  6. לוחצים על שליחה. מסוף Google Cloud חוזר לדף Overview של מסד הנתונים, ומוצג בו שמתבצעים Schema updates. מחכים עד שהעדכון יסתיים.

הוספת נתונים לטבלאות

עכשיו, אחרי שיש טבלאות במסד הנתונים, צריך להוסיף להן נתונים. כדי להוסיף נתונים:

  1. ברשימת הטבלאות בדף Overview של מסד הנתונים, לוחצים על הטבלה Checking. בדף Schema במסוף Google Cloud מוצגת הסכימה של הטבלה.
  2. בתפריט הניווט שמימין, לוחצים על Data כדי להציג את הדף Data של הטבלה.
  3. לוחצים על הוספה. במסוף Google Cloud מוצג הדף Query של הטבלה, עם כרטיסיית שאילתה חדשה שמכילה הצהרות INSERT ו-SELECT. מחליפים את ההצהרות האלה בהצהרות הבאות:

    INSERT INTO Checking (AccountId, Balance)
    VALUES(1, 1000),
          (2, 2000);
    
  4. לוחצים על Run.

  5. בתפריט הניווט הימני, לוחצים שוב על Data כדי להציג את נתוני הטבלה. מוודאים שהטבלה מכילה את הנתונים הרצויים.

  6. לוחצים על הקישור tutorial-database: Overview כדי לחזור לדף הסקירה הכללית של מסד הנתונים.

  7. ברשימת הטבלאות בדף Overview של מסד הנתונים, לוחצים על הטבלה Savings. בדף Schema במסוף Google Cloud מוצגת הסכימה של הטבלה.

  8. בתפריט הניווט שמימין, לוחצים על Data כדי להציג את הדף Data של הטבלה.

  9. לוחצים על הוספה. במסוף Google Cloud מוצג הדף Query של הטבלה, עם כרטיסיית שאילתה חדשה שמכילה הצהרות INSERT ו-SELECT. מחליפים את ההצהרות האלה בהצהרות הבאות:

    INSERT INTO Savings (AccountId, Balance)
    VALUES(1, 10000),
          (2, 20000);
    
  10. לוחצים על Run.

  11. בתפריט הניווט הימני, לוחצים שוב על Data כדי להציג את נתוני הטבלה. מוודאים שהטבלה מכילה את הנתונים הרצויים.

עדכון הפונקציה של Cloud Functions כדי לשלוח שאילתות למסד הנתונים

הפונקציה accountBalanceCheck בקוד ה-webhook בודקת אם משתני סביבה ספציפיים מוגדרים עם מידע להתחברות למסד הנתונים. אם משתני הסביבה האלה לא מוגדרים, הפונקציה משתמשת ביתרה בחשבון שמוגדרת בתוך הקוד.

אחרי שמגדירים מסד נתונים, מעדכנים את הפונקציה של Cloud Functions כדי להגדיר את משתני הסביבה הנדרשים:

  1. פותחים את דף הסקירה הכללית של Cloud Functions.

    לסקירה הכללית של Cloud Functions

  2. לוחצים על הפונקציה tutorial-banking-webhook כדי לעבור לדף הפרטים שלה.

  3. לוחצים על Edit.

  4. פותחים את הקטע Runtime, build and connections settings.

  5. לוחצים על הכרטיסייה Runtime.

  6. מוסיפים את המשתנים הבאים בקטע Runtime environment variables:

    • ‫PROJECT_ID: מזהה הפרויקט
    • ‫SPANNER_INSTANCE_ID: מזהה המכונה שלכם ב-Spanner (כנראה tutorial-instance)
    • ‫SPANNER_DATABASE_ID: מזהה מסד הנתונים שלכם ב-Spanner (כנראה tutorial-database)
  7. לוחצים על הבא.

  8. לוחצים על Deploy.

  9. מחכים עד שאינדיקטור הסטטוס מראה שהפונקציה נפרסה בהצלחה.

בדיקת הסוכן

הסוכן מוכן לשימוש. לוחצים על הלחצן Test Agent במסוף Dialogflow כדי לפתוח את הסימולטור. נסו לנהל את השיחה הבאה עם הסוכן:

תור בשיחה את/ה סוכן
1 שלום שלום, תודה שבחרת בבנק ACME.
2 אני רוצה לדעת מה היתרה בחשבון שלי What account do you want the balance for: savings or checking?
3 עובר ושב היתרה העדכנית שלך: 10.00$

אם תבדקו את הקוד, תראו ש-10$ הוא לא הערך בתוך הקוד. זה אומר שה-webhook התחבר בהצלחה למסד הנתונים, שבו יש יתרה של 10$.

פתרון בעיות

הקוד של ה-webhook כולל פקודות רישום ביומן. אם נתקלתם בבעיות, נסו לצפות ביומנים של הפונקציה של Cloud Functions.

אם הפונקציה לא מתחברת למסד הנתונים ומופיעה שגיאת הרשאה ביומנים, יכול להיות שצריך לתקן את התפקיד של חשבון השירות שמשמש כברירת מחדל בפונקציה. חשבון השירות הזה הוא בפורמט PROJECT_ID@. כדי לפתור את הבעיה, אפשר לבצע אחת מהפעולות הבאות:

מידע נוסף

למידע נוסף על השלבים שלמעלה, אפשר לעיין במאמרים הבאים: