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

כרגע, ה-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. בקטע הקצאת קיבולת מחשוב, מזינים 100 יחידות עיבוד. התפוסה המינימלית הזו מספיקה כדי לבצע את המדריך.

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

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

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

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

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

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

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

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

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

  5. בדף Write DDL statements (כתיבת פקודות DDL), מזינים:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    כניסה לדף Overview של Cloud Functions

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

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

  4. פותחים את הקטע Runtime, build and connections settings (הגדרות של זמן ריצה, build וחיבורים).

  5. בוחרים בכרטיסייה זמן ריצה.

  6. מוסיפים את המשתנים הבאים בקטע Runtime environment variables (משתני סביבה של זמן ריצה):

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

  8. לוחצים על פריסה.

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

בדיקת הסוכן

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

תור בשיחה את/ה סוכן
1 שלום שלום, תודה שבחרת ב-ACME Bank.
2 אני רוצה לדעת מה היתרה בחשבון שלי מהי היתרה שאתה רוצה לדעת: בחשבון החיסכון או בחשבון העובר ושב?
3 עובר ושב היתרה האחרונה שלך: ‎10.00 USD

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

פתרון בעיות

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

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

מידע נוסף

מידע נוסף על השלבים שלמעלה: