Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
במדריך הזה מוסבר איך ליצור צינור CI/CD כדי לבדוק, לסנכרן ולפרוס קובצי DAG בסביבת Managed Airflow ממאגר GitHub.
אם רוצים רק לסנכרן נתונים משירותים אחרים, אפשר לעיין במאמר בנושא העברת נתונים משירותים אחרים.
סקירה כללית על צינור עיבוד נתונים של CI/CD
צינור ה-CI/CD שמשמש לבדיקה, לסנכרון ולפריסה של DAG כולל את השלבים הבאים:
מבצעים שינוי ב-DAG ומעבירים את השינוי הזה להסתעפות פיתוח במאגר.
פותחים בקשת משיכה מול הענף הראשי של המאגר.
Cloud Build מריץ בדיקות יחידה כדי לוודא ש-DAG תקין.
בקשת המיזוג אושרה ומוזגה לענף הראשי של המאגר.
Cloud Build מסנכרן את סביבת Managed Airflow עם השינויים החדשים האלה.
מוודאים ש-DAG פועל כצפוי בסביבת הפיתוח.
אם ה-DAG פועל כמצופה, מעלים אותו לסביבת הייצור של Managed Airflow.
מטרות
- הפעלת בדיקה אוטומטית לפני שליחת קוד באמצעות Cloud Build. בבדיקה הזו מופעלות בדיקות יחידה ל-DAG.
- סנכרון של DAG בסביבת הפיתוח של Managed Service for Apache Airflow עם DAG במאגר GitHub.
לפני שמתחילים
במדריך הזה אנחנו מניחים שאתם עובדים עם שתי סביבות זהות של Managed Airflow: סביבת פיתוח וסביבת ייצור.
לצורך המדריך הזה, אתם מגדירים צינור CI/CD רק לסביבת הפיתוח. חשוב לוודא שהסביבה שבה אתם משתמשים היא לא סביבת ייצור.
המדריך הזה מניח שקובצי ה-DAG והבדיקות שלהם מאוחסנים במאגר GitHub.
צינור עיבוד הנתונים לדוגמה של CI/CD מדגים את התוכן של מאגר לדוגמה. קובצי ה-DAG והבדיקות מאוחסנים בספרייה
dags/, וקובצי הדרישות, קובץ האילוצים וקובצי תצורת ה-build של Cloud Build מאוחסנים ברמה העליונה. כלי הסנכרון של DAG והדרישות שלו נמצאים בספרייהutils.
יצירת משימת בדיקה לפני שליחה ובדיקות יחידה
המשימה הראשונה של Cloud Build מפעילה בדיקה לפני שליחה, שמבצעת בדיקות יחידה ל-DAG.
הוספת בדיקות יחידה
אם עדיין לא עשיתם זאת, כדאי ליצור בדיקות יחידה ל-DAGs. שומרים את הבדיקות האלה לצד הגרפים המכוונים המחזוריים במאגר, כל אחד עם הסיומת _test. לדוגמה, קובץ הבדיקה של ה-DAG ב-example_dag.py הוא example_dag_test.py. אלה הבדיקות שמופעלות כבדיקה לפני שליחת קוד במאגר שלכם.
יצירת הגדרת YAML של Cloud Build לבדיקה לפני שליחת קוד
במאגר, יוצרים קובץ YAML בשם test-dags.cloudbuild.yaml שמגדיר את עבודת ה-Cloud Build לבדיקות לפני שליחה. התהליך כולל שלושה שלבים:
- מתקינים את יחסי התלות שנדרשים ל-DAG.
- מתקינים את הרכיבים התלויים שנדרשים לבדיקות היחידה.
- מריצים את הבדיקות של ה-DAG.
יצירת טריגר לפיתוח גרסת Build לבדיקה לפני שליחת קוד
פועלים לפי המדריך יצירת מאגרים מ-GitHub כדי ליצור טריגר שמבוסס על אפליקציית GitHub עם ההגדרות הבאות:
Name (שם):
test-dagsאירוע: בקשת משיכה
מקור – מאגר: בוחרים את המאגר
מקור – ענף בסיס:
^main$(אם צריך, משנים אתmainלשם של ענף הבסיס במאגר)מקור – בקרת תגובות: לא נדרש
Build Configuration (הגדרת build) – קובץ הגדרות של Cloud Build:
/test-dags.cloudbuild.yaml(הנתיב לקובץ ה-build)
יצירה של משימת סנכרון של DAG והוספה של סקריפט כלי DAG
בשלב הבא, מגדירים משימה ב-Cloud Build שמריצה סקריפט של כלי DAG. סקריפט השירות בעבודה הזו מסנכרן את ה-DAG עם סביבת Managed Airflow אחרי שהם ממוזגים לענף הראשי במאגר.
הוספת סקריפט כלי השירות של DAG
מוסיפים את סקריפט כלי ה-DAG למאגר. סקריפט השירות הזה מעתיק את כל קובצי ה-DAG בספרייה dags/ של המאגר שלכם לספרייה זמנית, ומתעלם מכל קובצי ה-Python שאינם קובצי DAG. לאחר מכן, הסקריפט משתמש בספריית הלקוח של Cloud Storage כדי להעלות את כל הקבצים מהספרייה הזמנית אל הספרייה dags/ בדלי של סביבת Managed Airflow.
יצירת הגדרת YAML של Cloud Build לסנכרון של DAG
במאגר, יוצרים קובץ YAML בשם add-dags-to-composer.cloudbuild.yaml שמגדיר את עבודת ה-Cloud Build לסנכרון של DAG. התהליך כולל שני שלבים:
מתקינים את יחסי התלות שנדרשים לסקריפט השירות של DAG.
מריצים את סקריפט השירות כדי לסנכרן את הגרפים המכוונים האציקליים (DAG) במאגר עם סביבת Managed Airflow.
יצירת טריגר לפיתוח גרסת Build
פועלים לפי המדריך יצירת מאגרים מ-GitHub כדי ליצור טריגר שמבוסס על אפליקציית GitHub עם ההגדרות הבאות:
Name (שם):
add-dags-to-composerאירוע: שליחה לענף
מקור – מאגר: בוחרים את המאגר
מקור – ענף בסיס:
^main$(אם צריך, משנים אתmainלשם של ענף הבסיס במאגר)מקור – פילטר של קבצים כלולים (glob):
dags/**Build Configuration (הגדרת build) – קובץ הגדרות של Cloud Build:
/add-dags-to-composer.cloudbuild.yaml(הנתיב לקובץ ה-build)
בהגדרות המתקדמות, מוסיפים שני משתני החלפה:
_DAGS_DIRECTORY– הספרייה שבה נמצאים קובצי ה-DAG במאגר. אם אתם משתמשים במאגר הדוגמאות מהמדריך הזה, הואdags/.
_DAGS_BUCKET– הקטגוריה של Cloud Storage שמכילה את הספרייהdags/בסביבת הפיתוח של Managed Airflow. לא כוללים את הקידומתgs://. לדוגמה:us-central1-example-env-1234ab56-bucket.
בדיקת צינור עיבוד הנתונים של CI/CD
בקטע הזה, תפעלו לפי תהליך פיתוח של DAG שמשתמש בטריגרים של Cloud Build שיצרתם.
הפעלת משימה לפני שליחה
יוצרים בקשת משיכה לענף הראשי כדי לבדוק את ה-build. מאתרים את הבדיקה לפני השליחה בדף. לוחצים על Details ובוחרים באפשרות View more details on Google Cloud Build כדי לראות את יומני הבנייה במסוףGoogle Cloud .
אם בדיקת השליחה המוקדמת נכשלה, אפשר לעיין במאמר בנושא פתרון בעיות שקשורות לגרסאות build.
אימות הפעולה של ה-DAG בסביבת הפיתוח
אחרי שבקשת המיזוג תאושר, תוכלו למזג אותה עם הענף הראשי. אפשר להשתמש במסוףGoogle Cloud כדי לראות את תוצאות ה-build. אם יש לכם הרבה טריגרים של Cloud Build, אתם יכולים לסנן את הבנייה לפי שם הטריגר add-dags-to-composer.
אחרי שמשימת הסנכרון של Cloud Build מסתיימת בהצלחה, ה-DAG המסונכרן מופיע בסביבת הפיתוח של Managed Airflow. שם תוכלו לוודא ש-DAG פועל כמצופה.
הוספת ה-DAG לסביבת הייצור
אחרי שמוודאים ש-DAG פועל כמו שצריך, מוסיפים אותו ידנית לסביבת הייצור. כדי לעשות זאת, מעלים את קובץ ה-DAG לספרייה dags/ בדלי של סביבת הייצור של Managed Airflow.
אם משימת הסנכרון של ה-DAG נכשלה או אם ה-DAG לא מתנהג כצפוי בסביבת הפיתוח של Managed Airflow, אפשר לעיין במאמר פתרון בעיות שקשורות לגרסאות build.
טיפול בכשלים בבנייה
בקטע הזה מוסבר איך לטפל בתרחישים נפוצים של כשלים בבנייה.
מה קורה אם הבדיקה לפני שליחת המאמר נכשלה?
מתוך בקשת המיזוג, לוחצים על Details ובוחרים באפשרות View more details on Google Cloud Build כדי לראות את יומני הבנייה במסוףGoogle Cloud . אפשר להשתמש ביומנים האלה כדי לנפות באגים ב-DAG. אחרי שפותרים את הבעיות, מבצעים את התיקון ושולחים אותו לענף. הבדיקה לפני השליחה תפעל שוב, ותוכלו להמשיך לבצע איטרציות באמצעות היומנים ככלי לניפוי באגים.
מה קורה אם משימת הסנכרון של DAG נכשלה?
אפשר להשתמש במסוף Google Cloud כדי לראות את תוצאות ה-build. אם יש לכם הרבה טריגרים של Cloud Build, אתם יכולים לסנן את הבנייה לפי שם הטריגר add-dags-to-composer. בודקים את היומנים של משימת ה-build ופותרים את השגיאות. אם אתם צריכים עזרה נוספת בפתרון השגיאות, תוכלו להיעזר בערוצי התמיכה.
מה קורה אם ה-DAG לא פועל כמו שצריך בסביבת Managed Airflow?
אם ה-DAG לא פועל כצפוי בסביבת הפיתוח שלכם ב-Managed Airflow, אל תקדמו את ה-DAG באופן ידני לסביבת הייצור שלכם ב-Managed Airflow. במקום זאת, צריך לבצע אחת מהפעולות הבאות:
- מבטלים את בקשת המיזוג עם השינויים שגרמו לשבירת ה-DAG כדי לשחזר אותו למצב שהיה לפני השינויים (פעולה זו מבטלת גם את כל הקבצים האחרים בבקשת המיזוג).
- יוצרים בקשת משיכה חדשה כדי לבטל ידנית את השינויים ב-DAG הפגום.
- יוצרים בקשת משיכה חדשה כדי לתקן את השגיאות ב-DAG.
אחרי שמבצעים אחד מהשלבים האלה, מופעלת בדיקה חדשה לפני שליחת הקוד, ולאחר המיזוג מופעלת משימת הסנכרון של ה-DAG.