במדריך הזה נסביר איך להשתמש ב-Cloud Tasks באפליקציית App Engine כדי להפעיל פונקציה ב-Cloud Run ולשלוח הודעת אימייל מתוזמנת.
מטרות
- להבין את הקוד בכל אחד מהרכיבים.
- יוצרים חשבון SendGrid.
- מורידים את קוד המקור.
- פורסים פונקציית Cloud Run כדי לקבל בקשות Cloud Tasks ולשלוח אימייל באמצעות SendGrid API.
- יוצרים תור של Cloud Tasks.
- יוצרים חשבון שירות כדי לאמת את הבקשות של Cloud Tasks.
- פורסים את קוד הלקוח שמאפשר למשתמש לשלוח אימייל.
עלויות
ל-Cloud Tasks, לפונקציות Cloud Run ול-App Engine יש תוכנית בחינם, כך שאם תפעילו את ההדרכה במסגרת התוכנית בחינם של המוצרים האלה, לא תהיה לכם עלות נוספת. מידע נוסף על תמחור
לפני שמתחילים
בוחרים או יוצרים Google Cloud פרויקט.
מאתחלים אפליקציית App Engine בפרויקט:
בדף Welcome to App Engine, לוחצים על Create Application.
בוחרים אזור בשביל הבקשה. המיקום הזה ישמש כפרמטר
LOCATION_IDבבקשות שלכם ל-Cloud Tasks, לכן חשוב לשים לב אליו. שימו לב ששני מיקומים, שנקראים europe-west ו-us-central בפקודות של App Engine, נקראים europe-west1 ו-us-central1 בפקודות של Cloud Tasks.בוחרים באפשרות Node.js בשדה Language (שפה) ובאפשרות Standard בשדה Environment (סביבה).
אם מופיע חלון קופץ עם האפשרות הפעלת החיוב, בוחרים את החשבון לחיוב. אם אין לכם חשבון לחיוב, לוחצים על יצירת חשבון לחיוב ופועלים לפי ההוראות באשף.
בדף Get started (תחילת העבודה), לוחצים על Next (הבא). תטפל בזה אחר כך.
מפעילים את ממשקי ה-API של פונקציות Cloud Run ו-Cloud Tasks.
מתקינים ומפעילים את ה-CLI של gcloud.
הסבר על הקוד
בקטע הזה נסביר איך הקוד של האפליקציה פועל.
יצירת המשימה
דף האינדקס מוצג באמצעות רכיבי handler ב-app.yaml. המשתנים שנדרשים ליצירת המשימה מועברים כמשתני סביבה.
הקוד הזה יוצר את נקודת הקצה /send-email. נקודת הקצה הזו מטפלת בשליחת טפסים מדף האינדקס ומעבירה את הנתונים לקוד ליצירת משימות.
הקוד הזה יוצר את המשימה ושולח אותה לתור של Cloud Tasks. הקוד יוצר את המשימה על ידי:
ההגדרה של סוג היעד היא
HTTP Request.ציון
HTTP methodלשימוש וURLהיעד.הגדרת הכותרת
Content-Typeלערךapplication/jsonכדי שאפליקציות במורד הזרם יוכלו לנתח את מטען הייעודי המובנה.הוספת כתובת האימייל בחשבון שירות כדי ש-Cloud Tasks יוכל לספק פרטי כניסה ליעד הבקשה, שנדרש לאימות. חשבון השירות נוצר בנפרד.
בודקים שהתאריך שהמשתמש הזין לא חורג מהמקסימום של 30 ימים ומוסיפים אותו לבקשה כשדה
scheduleTime.