כרגע, ה-webhook שלכם משתמש בנתונים שמוגדרים בקוד בפונקציה accountBalanceCheck.
בשלב הזה של המדריך, תיצרו מסד נתונים של Spanner, תאכלסו אותו בנתוני יתרה ותעדכנו את הפונקציה כדי לשלוח שאילתה למסד הנתונים.
הגדרות אישיות של פרויקט
חשוב שהסוכן שלכם ב-Dialogflow ומסד הנתונים יהיו באותו פרויקט. זו הדרך הקלה ביותר להעניק לפונקציה גישה מאובטחת למסד הנתונים. בנוסף, צריך להפעיל את Spanner API.
לפני שיוצרים את מסד הנתונים, צריך לבחור את הפרויקט במסוף Google Cloud .
מפעילים את Spanner API בפרויקט.
יצירת מופע Spanner
בפעם הראשונה שמשתמשים ב-Spanner, צריך ליצור מופע, שהוא הקצאה של משאבים שמשמשים מסדי נתונים של Spanner באותו מופע.
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על Create instance.
בשדה שם המכונה, מזינים Tutorial Instance.
מזהה המופע מוזן אוטומטית על סמך שם המופע.
בקטע Choose your configuration (בחירת ההגדרה), משאירים את אפשרות ברירת המחדל Regional (אזורי) ובוחרים באותו מיקום אזורי שבחרתם כשיצרתם את הפונקציה.
בקטע הקצאת קיבולת מחשוב, מזינים 100 יחידות עיבוד. התפוסה המינימלית הזו מספיקה כדי לבצע את המדריך.
לוחצים על יצירה. במסוף Google Cloud מוצג הדף Overview של המופע שיצרתם.
יצירת מסד נתונים ב-Spanner
אחרי שיש לכם מופע, אתם צריכים ליצור מסד נתונים. כדי ליצור מסד נתונים:
- בדף Overview של המופע, לוחצים על Create database.
- בשדה של שם מסד הנתונים, מזינים tutorial-database.
- בוחרים את דיאלקט מסד הנתונים Google Standard SQL.
- לוחצים על יצירה. בדף Overview במסוף Google Cloud מוצג מסד הנתונים שיצרתם.
יצירת טבלאות למסד הנתונים
אחרי שיצרתם מסד נתונים, צריך ליצור טבלאות למסד הנתונים. כדי ליצור טבלאות:
- בקטע Tables בדף Overview של מסד הנתונים, לוחצים על Create table.
בדף Write DDL statements (כתיבת פקודות DDL), מזינים:
CREATE TABLE Checking ( AccountId INT64, Balance INT64, ) PRIMARY KEY(AccountId);לוחצים על שליחה. המסוף Google Cloud חוזר לדף Overview של מסד הנתונים ומוצג בו שהעדכונים של Schema מתבצעים. מחכים שהעדכון יסתיים.
בקטע Tables בדף Overview של מסד הנתונים, לוחצים על Create table.
בדף Write DDL statements (כתיבת פקודות DDL), מזינים:
CREATE TABLE Savings ( AccountId INT64, Balance INT64, ) PRIMARY KEY(AccountId);לוחצים על שליחה. המסוף Google Cloud חוזר לדף Overview של מסד הנתונים ומוצג בו שהעדכונים של Schema מתבצעים. מחכים שהעדכון יסתיים.
הוספת נתונים לטבלאות
עכשיו, אחרי שיש לכם טבלאות במסד הנתונים, צריך להוסיף נתונים לטבלאות. כדי להוסיף נתונים:
- ברשימת הטבלאות בדף Overview של מסד הנתונים, לוחצים על הטבלה Checking. במסוף Google Cloud מוצג הדף Schema של הטבלה.
- בתפריט הניווט הימני, לוחצים על נתונים כדי להציג את הדף נתונים של הטבלה.
לוחצים על הוספה. במסוף מוצגת הטבלה בדף Query עם כרטיסיית שאילתה חדשה שמכילה את ההצהרות
INSERTו-SELECT. Google Cloud מחליפים את ההצהרות האלה בהצהרות הבאות:INSERT INTO Checking (AccountId, Balance) VALUES(1, 1000), (2, 2000);לוחצים על Run.
בתפריט הניווט הימני, לוחצים שוב על נתונים כדי להציג את הנתונים בטבלה. מוודאים שהטבלה מכילה את הנתונים הרצויים.
לוחצים על הקישור tutorial-database: Overview כדי לחזור לדף הסקירה הכללית של מסד הנתונים.
ברשימת הטבלאות בדף Overview של מסד הנתונים, לוחצים על הטבלה Savings. במסוף Google Cloud מוצג הדף Schema של הטבלה.
בתפריט הניווט הימני, לוחצים על נתונים כדי להציג את הדף נתונים של הטבלה.
לוחצים על הוספה. במסוף מוצגת הטבלה בדף Query עם כרטיסיית שאילתה חדשה שמכילה את ההצהרות
INSERTו-SELECT. Google Cloud מחליפים את ההצהרות האלה בהצהרות הבאות:INSERT INTO Savings (AccountId, Balance) VALUES(1, 10000), (2, 20000);לוחצים על Run.
בתפריט הניווט הימני, לוחצים שוב על נתונים כדי להציג את הנתונים בטבלה. מוודאים שהטבלה מכילה את הנתונים הרצויים.
עדכון הפונקציה של Cloud Functions כדי לשלוח שאילתה למסד הנתונים
הפונקציה accountBalanceCheck בקוד של ה-webhook בודקת אם משתני סביבה ספציפיים מוגדרים עם מידע להתחברות למסד הנתונים.
אם משתני הסביבה האלה לא מוגדרים, הפונקציה משתמשת ביתרת חשבון שמוגדרת בתוך הקוד.
אחרי שמגדירים מסד נתונים, מעדכנים את פונקציית Cloud Functions כדי להגדיר את משתני הסביבה הנדרשים:
פותחים את דף הסקירה הכללית של Cloud Functions.
לוחצים על הפונקציה tutorial-banking-webhook כדי לעבור לדף הפרטים שלה.
לוחצים על Edit.
פותחים את הקטע Runtime, build and connections settings (הגדרות של זמן ריצה, build וחיבורים).
בוחרים בכרטיסייה זמן ריצה.
מוסיפים את המשתנים הבאים בקטע Runtime environment variables (משתני סביבה של זמן ריצה):
-
PROJECT_ID: מזהה הפרויקט -
SPANNER_INSTANCE_ID: מזהה המכונה שלכם ב-Spanner (כנראהtutorial-instance) -
SPANNER_DATABASE_ID: מזהה מסד הנתונים של Spanner (כנראהtutorial-database)
-
לוחצים על הבא.
לוחצים על פריסה.
מחכים עד שאינדיקטור הסטטוס מראה שהפונקציה נפרסה בהצלחה.
בדיקת הסוכן
הסוכן מוכן עכשיו לשימוש. לוחצים על הלחצן Test Agent (בדיקת הסוכן) במסוף Dialogflow כדי לפתוח את הסימולטור. נסו לנהל את השיחה הבאה עם הסוכן:
| תור בשיחה | את/ה | סוכן |
|---|---|---|
| 1 | שלום | שלום, תודה שבחרת ב-ACME Bank. |
| 2 | אני רוצה לדעת מה היתרה בחשבון שלי | מהי היתרה שאתה רוצה לדעת: בחשבון החיסכון או בחשבון העובר ושב? |
| 3 | עובר ושב | היתרה האחרונה שלך: 10.00 USD |
אם בודקים את הקוד, הערך $10 לא מוצפן. המשמעות היא שה-webhook שלכם התחבר בהצלחה למסד הנתונים, שבו יש יתרה של 10$.
פתרון בעיות
קוד ה-webhook כולל הצהרות רישום ביומן. אם נתקלתם בבעיות, נסו לצפות ביומנים של Cloud Function.
אם הפונקציה לא מתחברת למסד הנתונים ומופיעה שגיאת הרשאה ביומנים, יכול להיות שתצטרכו לתקן את התפקיד של חשבון השירות שמוגדר כברירת מחדל ומשמש את הפונקציה.
חשבון השירות הזה הוא בתבנית PROJECT_ID@appspot.gserviceaccount.com.
אפשר לפתור את הבעיה באחת מהדרכים הבאות:
אם חשבון השירות שמוגדר כברירת מחדל מוצג בדף הראשי של IAM, צריך לשנות את ההרשאות של חשבון השירות. תפקיד העורך יתאים, אבל יכול להיות שתצטרכו תפקיד עם הרשאות מפורטות יותר בתרחיש של הפקה.
אם חשבון השירות שמוגדר כברירת מחדל לא מוצג בדף הראשי של IAM, צריך להעניק את התפקיד הנדרש על ידי הוספת חשבון השירות כחשבון משתמש חדש.
לחלופין, אתם יכולים להשתמש בחשבון שירות שאתם יוצרים.
מידע נוסף
מידע נוסף על השלבים שלמעלה:
- שימוש ב-Cloud Spanner עם Cloud Functions
- יצירה של מסד נתונים וביצוע שאילתות בו באמצעות מסוף Google Cloud
- שפת טיפול בנתונים (DDL) ב-SQL סטנדרטי של Google
- שפת מניפולציה של נתונים (DML) ב-SQL סטנדרטי של Google