ברוכים הבאים ליום 5 של 12 ימי DigitalOcean! אתמול, הגדרתם את שירות תזכורת יומולדת שלכם לרוץ על פונקציות DigitalOcean, כלומר זה עכשיו עבור בענן וללא שרתים. 🎉 היום, תקחו את זה צעד קדימה על ידי אוטומציה לרוץ בלווין שלה—ללא צורך בקלט ידני.
עד סיום המדריך הזה, השירות שלכם (או כל פונקציה אחרת שאתם עובדים עליה) ירוץ אוטומטית בזמן קבוע בכל יום. זה אומר כי לא תצטרכו עוד לזכור להפעיל אותו בעצמכם—זה פשוט עובד.
למה לאוטומציה?
ההעלאה של הפונקציה שלכם לענן הייתה ניצחון גדול אתמול, אך להפעיל אותה ידנית מבטל את המטרה של האוטומציה. המיקוד של היום הוא על קביעת זמן לריץ השירות אוטומטית—כמו שעון—כך שתוכלו להגדיר ולשכוח. פונקציות DigitalOcean מגיעות עם סידור זמן מובנה באמצעות הפעלות טריגרים למטרה הזו בדיוק, ויש לכם שני דרכים להגדיר זאת.
🚀 מה שתלמד
עד סיום היום, תדע כיצד:
- להגדיר טריגר יומי כדי להפעיל את הפונקציה שלך באופן אוטומטי.
- ללמוד שני דרכים לעשות זאת – דרך לוח הבקרה של DigitalOcean או עם CLI של
doctl
ו־project.yml
. - לבדוק את ההגדרה כדי לוודא שהיא עובדת.
🛠 מה שתצטרך
לפני התחלת הפעולה, וודא שיש לך את הפריטים הבאים:
- פונקציה שכבר פורסמה ב־DigitalOcean (לדוגמה, שירות תזכורת יום הולדת מ־יום 4: בניית שירות תזכורת ליום הולדת) לאוטומציה עם טריגרים.
- אם אתה משתמש ב-CLI של
doctl
, תצטרך את קובץproject.yml
עבור הפונקציה שלך. תוכל לבדוק את היום 4 להוראות על התקנה והגדרת ה-CLI שלdoctl
, ויצירת קובץproject.yml
.
🧑🍳 מתכון ליום 5: אוטומציה של פונקציות עם טריגרים
שלב 1: הגדרת טריגר עבור הפונקציה שלך
ה-CLI של DigitalOcean מציע לך שני אפשרויות להגדרת טריגרים:
- אפשרות 1: השתמש בפאנל הבקרה להתקנה מהירה וקלה.
- אפשרות 2: השתמש ב-CLI של
doctl
לשליטה עם יכולות תכנותיות יותר חזקות.
אזהרה: זכור שטריגרים שנוצרו בלוח הבקרה יאבדו אם תפרוס מחדש את הפונקציה באמצעות ה-CLI. אם אתה מתכוון לפרוס מחדש לעיתים קרובות, השתמש באפשרות 2 כדי להוסיף טריגרים ישירות לקובץ project.yml
.
אפשרות 1: שימוש בלוח הבקרה ליצירת טריגר
הדרך הקלה ביותר להגדיר טריגר היא דרך לוח הבקרה של DigitalOcean. זה מהיר, לא דורש התקנה, ומתאים להגדרות פשוטות חד פעמיות.
- נווט אל עמוד הפונקציות הראשי בלוח המחוונים של DigitalOcean.
- מצא את הפונקציה שלך (למשל,
reminders/birthdays
) ולחץ על הכרטיסייה טריגרים.
- לחץ על צור טריגר, הוסף שם לטריגר שלך. זה יכול להיות כל דבר תיאורי, כמו
daily-birthday-trigger
. השם חייב להכיל רק תווים אלפאנומריים, מקפים ונקודות. - הוסף ביטוי קרון לקביעת לוח הזמנים. לדוגמה,
0 9 * * *
פירושו שהפונקציה תרוץ כל יום בשעה 9:00 בבוקר.
הערה: אם אינך בטוח איך קרון עובד? בדוק את crontab.guru למדריך שימושי.
- שמור את הטריגר.
ברגע שיצרת את הטריגר שלך, זה רעיון טוב לבדוק אותו כדי לוודא שהכל עובד כפי שמצופה. קפוץ אל בדוק את האוטומציה למטה כדי ללמוד כיצד.
אזהרה: בעוד שהלוח בקרה פשוט ויעיל, כל טריגרים שתיצור כאן יימחקו או יוחלפו אם תחזיר את הפונקציה באמצעות CLI. עבור עדכונים תכופים או פריסות מתוכנתות, דלג ל-אפשרות 2.
אפשרות 2: שימוש ב-doctl
CLI עם project.yml
אתה יכול גם ליצור טריגרים על ידי הוספתם ישירות לקובץ ה-project.yml שלך. שיטה זו היא מהימנה יותר עבור פריסות תכופות מכיוון שהיא מבטיחה שהטריגרים שלך תמיד כלולים בקונפיגורציית הפונקציה. בניגוד לאופציית לוח הבקרה שתוארה קודם, גישה זו מונעת מהטריגרים להיות מוחלפים או לאבד במהלך הפריסות מחדש.
כך תוכל להגדיר זאת:
-
פתח את קובץ
project.yml
מיום 4: הפעלת הודעות יום הולדת עם פונקציות של DigitalOcean. זה עשוי להיראות משהו כזה: -
הוסף מיקום
triggers
להגדרת לוח זמנים לתצורת הפונקציה שלך: -
קובץ
project.yml
עודכן לסופו:זה אומר ל-DigitalOcean להפעיל את הפונקציה
birthdays
בכל יום ב-9:00 בבוקר.-
triggers
קטע: מגדיר את שם, הסוג והלוח זמנים של הטריגר. ניתן לתת לטריגר שם תיאורי כלשהו, כמוdaily-birthday-trigger
. -
cron
: מציין את הזמן שבו הפונקציה תרוץ באופן יומי בזמן אוניברסלי. הביטוי cron0 9 * * *
לדוגמה, מתזמן את הרצת הפונקציה להתרחש בכל יום ב-9:00 בבוקר.
-
-
שמור את הקובץ ופרוס אותו על ידי הרצת הפקודה הבאה מתיקיית ה-
my-birthday-reminder-service
:חשוב: ודא שאתה מריץ את הפקודה מתיקיית האב, ולא מתוך תיקיית
my-birthday-reminder-service
. הרצת הפקודה ממיקום לא נכון עלולה לגרום לשגיאה כמו זו: -
לאחר שהפריסה תצליח, תראה הודעת אישור דומה לזו:
-
גש ללוח המחוונים שלך כדי לוודא שהזיק הוקם תחת הקטע פונקציות.
טיפ מקצועי: כדי לבדוק את הזיק שלך, הגדר את ביטוי הכרון זמנית לכמה דקות מעכשיו (לדוגמה, 28 9 * * *
אם זה 9:25 בבוקר). לאחר שאישרת שהזיק פועל, עדכן אותו לזמנים הרצויים והפעל מחדש.
שלב 2: בדיקת האוטומציה
בוא נבדוק את הזיקים שלך כדי לוודא שהם עובדים. במקום לחכות שיפעלו בזמנם הרגיל, תוכל להגדיר אותם לרוץ כמה דקות מעכשיו. הנה איך לעשות זאת:
-
הגדר את ביטוי הכרון של הזיק שלך לכמה דקות מהזמן הנוכחי (בזמן UTC). לדוגמה, אם זה 9:25 בבוקר ב-UTC, הגדר את ביטוי הכרון ל-
28 9 * * *
כדי שהפונקציה תרוץ ב-9:28 בבוקר UTC.הערה: לא בטוחים איך להמיר את הזמן המקומי שלכם ל-UTC? כלים כמו ממיר אזורי זמן יכולים לעזור.
-
שמור את הטריגר המעודכן (אם אתה משתמש בלוח הבקרה) או פרוס מחדש את קובץ
project.yml
המעודכן שלך (אם אתה משתמש ב-CLI): -
חכה שהטריגר יתבצע, ואז בדוק את יומני ההפעלה כדי לאשר שהפונקציה רצה בהצלחה:
הערה: יומני ההפעלה רושמים פרטים על מתי הפונקציה שלך הופעלה, כולל אם היא הופעלה בהצלחה או נתקלה בשגיאות. זהו דרך מועילה לוודא שהגורם שלך הופעל בזמן המתוזמן.
פקודה זו תחזיר את פרטי ההפעלה האחרונה של הפונקציה שלך. לדוגמה, תוכל לראות משהו דומה לזה:
זה מאשר שהגורם הופעל והפונקציה הופעלה בהצלחה! 🎉
הערה: לאחר שוידאת שהכל עובד, עדכן את ביטוי ה־cron לגרסה הרצויה שלך (לדוגמה, 0 9 * * *
עבור 9:00 בבוקר UTC בכל יום) ושמור או הרץ מחדש.
הערה קצרה על יומנים
בעוד שפקודת יומני ההפעלה
היא דרך מצוינת לבדוק ביצועים אחרונים, לפעמים תצטרך ליותר יומני פרטיים כדי לאבחן או לחקור בעיות עם הפונקציה שלך. DigitalOcean מספקת גם אפשרויות להעברת יומנים אלו לשירותי יומנים חיצוניים, מה שהופך את המעקב והאיתור של היישום שלך לקל יותר במהלך הזמן.
ביום 6, תלמד לצפות ביומנים ישירות, לפרש אותם ביעילות ולהגדיר העברת יומנים לשירותים חיצוניים כמו Logtail או Papertrail. הכלים הללו יעזרו לך להישאר מעודכן בביצועי הפונקציה שלך.
🎁 סיכום
הנה מה שהשגת היום:
- אוטומטת את שירות תזכורת יום ההולדת שלך (או כל פונקציה אחרת) לפעול מדי יום.
- למדת שתי דרכים להגדיר מפעילים—דרך לוח הבקרה ובאמצעות ה-
doctl
CLI. - בדקת את ההגדרה שלך כדי לוודא שהיא פועלת כמצופה.
הנה המדריכים הקודמים בסדרה זו:
- יום 1: הגדרת מסד נתונים PostgreSQL לתזכורות יום הולדת
- יום 2: חיבור למסד נתונים PostgreSQL שלך עם Python
- יום 3: בדיקת ימי הולדת ושליחת הודעות SMS
- יום 4: פריסת התראות יום הולדת לפונקציות
מה הלאה: עכשיו שהשירות שלך פועל באופן עצמאי, השלב הבא הוא לנטר אותו בצורה אפקטיבית. במדריך הבא, תלמד כיצד לצפות ביומני הפונקציות שלך ולשלוח אותם לשירותים חיצוניים כדי לפשט את המעקב ופתרון הבעיות. נתראה אז!
Source:
https://www.digitalocean.com/community/tutorials/automating-birthday-reminders-with-triggers