הרצת DAG של Apache Airflow ב-Managed Airflow (דור 3)
Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
במדריך למתחילים הזה נסביר איך ליצור סביבת Managed Service for Apache Airflow ולהריץ DAG של Apache Airflow ב-Managed Airflow (דור 3).
אם אתם חדשים ב-Airflow, תוכלו לקרוא את המדריך למושגים ב-Airflow במסמכי התיעוד של Apache Airflow כדי לקבל מידע נוסף על מושגים, אובייקטים ושימושים ב-Airflow.
אם רוצים להשתמש ב-Google Cloud CLI במקום זאת, אפשר לעיין במאמר הרצת DAG של Apache Airflow ב-Managed Service for Apache Airflow (Google Cloud CLI).
אם אתם רוצים ליצור סביבה באמצעות Terraform, תוכלו לעיין במאמר יצירת סביבות (Terraform).
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
מפעילים את Managed Airflow API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים -
כדי לקבל את ההרשאות שדרושות לביצוע ההפעלה המהירה הזו, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
כדי להקצות תפקידים והרשאות ב-IAM:
אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin) -
כדי ליצור חשבון שירות לסביבת Managed Airflow:
יצירת חשבונות שירות (
roles/iam.serviceAccountCreator) -
כדי להציג, ליצור ולנהל את סביבת Managed Airflow:
- אדמין של סביבה ואובייקטים באחסון (
roles/composer.environmentAndStorageObjectAdmin) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser)
- אדמין של סביבה ואובייקטים באחסון (
-
כדי לצפות ביומנים:
מציג היומנים (
roles/logging.viewer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
כדי להקצות תפקידים והרשאות ב-IAM:
אדמין IAM של פרויקט (
יצירת חשבון שירות של סביבה
כשיוצרים סביבה, מציינים חשבון שירות. חשבון השירות הזה נקרא חשבון השירות של הסביבה. בסביבה שלכם נעשה שימוש בחשבון השירות הזה כדי לבצע את רוב הפעולות.
חשבון השירות של הסביבה שלכם הוא לא חשבון משתמש. חשבון שירות הוא סוג מיוחד של חשבון, שאפליקציה או מכונה וירטואלית (VM) משתמשות בו, ולא אדם.
כדי ליצור חשבון שירות לסביבה שלכם:
יוצרים חשבון שירות חדש, כמו שמתואר במאמר בנושא ניהול זהויות והרשאות גישה.
מקצים לו תפקיד, כמו שמתואר במסמכי התיעוד של ניהול הזהויות והרשאות הגישה (IAM). התפקיד הנדרש הוא Composer Worker (
composer.worker).
יצירת סביבה
נכנסים לדף Create environment במסוף Google Cloud .
בשדה שם מזינים
example-environment.בתפריט הנפתח Location, בוחרים אזור לסביבת Managed Airflow. במדריך הזה נעשה שימוש באזור
us-central1.כדי להשתמש באפשרויות אחרות להגדרת הסביבה, משתמשים בערכי ברירת המחדל שסופקו.
לוחצים על יצירה ומחכים עד שהסביבה נוצרת.
בסיום, מופיע סימן וי ירוק ליד שם הסביבה.
יצירת קובץ DAG
DAG של Airflow הוא אוסף של משימות מאורגנות שרוצים לתזמן ולהריץ. גרפים מכווני מחזור (DAG) מוגדרים בקובצי Python רגילים.
במדריך הזה נעשה שימוש בדוגמה ל-DAG של Airflow שמוגדר בקובץ quickstart.py.
קוד Python בקובץ הזה מבצע את הפעולות הבאות:
- יצירת תרשים DAG,
composer_sample_dag. ה-DAG הזה מופעל כל יום. - מבצע משימה אחת,
print_dag_run_conf. המשימה מדפיסה את ההגדרה של הפעלת ה-DAG באמצעות אופרטור bash.
שומרים עותק של קובץ quickstart.py במחשב המקומי:
העלאת קובץ ה-DAG לקטגוריה של הסביבה
לכל סביבת Managed Airflow משויך מאגר (bucket) של Cloud Storage. Airflow ב-Managed Airflow מתזמן רק DAG שנמצאים בתיקייה /dags בדלי הזה.
כדי לתזמן את ה-DAG, מעלים את quickstart.py מהמחשב המקומי לתיקייה /dags בסביבה:
נכנסים לדף Environments במסוף Google Cloud .
ברשימת הסביבות, לוחצים על שם הסביבה,
example-environment. הדף Environment details ייפתח.לוחצים על Open DAGs folder (פתיחת תיקיית DAG). הדף Bucket details נפתח.
לוחצים על העלאת קבצים ובוחרים את העותק של
quickstart.py.כדי להעלות את הקובץ, לוחצים על פתיחה.
הצגת תרשים ה-DAG
אחרי שמעלים את קובץ ה-DAG, Airflow מבצע את הפעולות הבאות:
- מנתח את קובץ ה-DAG שהעליתם. יכול להיות שיחלפו כמה דקות עד ש-DAG יהיה זמין ל-Airflow.
- ה-DAG נוסף לרשימת ה-DAG הזמינים.
- מריץ את ה-DAG בהתאם ללוח הזמנים שציינתם בקובץ ה-DAG.
בודקים שה-DAG מעובד ללא שגיאות ושהוא זמין ב-Airflow על ידי הצגתו בממשק המשתמש של DAG. ממשק המשתמש של DAG הוא ממשק Managed Airflow לצפייה בפרטי DAG במסוף Google Cloud . ב-Managed Airflow יש גם גישה לממשק המשתמש של Airflow, שהוא ממשק אינטרנט מקורי של Airflow.
מחכים כחמש דקות כדי לתת ל-Airflow זמן לעבד את קובץ ה-DAG שהעליתם קודם, ולהשלים את ההרצה הראשונה של ה-DAG (מוסבר בהמשך).
נכנסים לדף Environments במסוף Google Cloud .
ברשימת הסביבות, לוחצים על שם הסביבה,
example-environment. הדף Environment details ייפתח.עוברים לכרטיסייה DAGs.
מוודאים ש-
composer_quickstartDAG מופיע ברשימת ה-DAG.
איור 1. רשימת ה-DAGs מציגה את ה-DAG composer_quickstart (אפשר ללחוץ כדי להגדיל)
צפייה בפרטי ההרצה של DAG
כל הרצה של DAG נקראת הרצת DAG. Airflow מריץ מיד את DAG לדוגמה כי תאריך ההתחלה בקובץ ה-DAG מוגדר ליום האתמול. כך, Airflow מתעדכן בהתאם ללוח הזמנים של DAG שצוין.
ה-DAG לדוגמה מכיל משימה אחת, print_dag_run_conf, שמריצה את הפקודה echo במסוף. הפקודה הזו מחזירה מטא נתונים על ה-DAG (מזהה מספרי של הרצת ה-DAG).
בכרטיסייה DAGs, לוחצים על
composer_quickstart. הכרטיסייה Runs של ה-DAG נפתחת.ברשימת ההרצות של DAG, לוחצים על הרשומה הראשונה.
איור 2. רשימת ההרצות של DAG עבור composer_quickstart DAG (לוחצים להגדלה) מוצגים פרטים על הרצת ה-DAG, כולל מידע על משימות בודדות ב-DAG לדוגמה.
איור 3. רשימת המשימות שהופעלו בהרצת ה-DAG (אפשר ללחוץ כדי להגדיל) בקטע Logs for DAG run (יומני ריצה של DAG) מפורטים יומנים של כל המשימות בריצת ה-DAG. אפשר לראות את הפלט של הפקודה
echoביומנים.
איור 4. יומנים של המשימה print_dag_run_conf (לחצו כדי להגדיל)
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
מוחקים את המשאבים שבהם השתמשתם במדריך הזה:
מוחקים את סביבת Managed Airflow:
נכנסים לדף Environments במסוף Google Cloud .
בוחרים באפשרות
example-environmentולוחצים על מחיקה.ממתינים עד שהסביבה תימחק.
מוחקים את קטגוריית הסביבה. מחיקה של סביבת Managed Airflow לא מוחקת את קטגוריית ה-bucket שלה.
במסוף Google Cloud , נכנסים לדף Storage > Browser.
בוחרים את הקטגוריה של הסביבה ולוחצים על מחיקה. לדוגמה, אפשר לתת לקטגוריה הזו את השם
us-central1-example-environ-c1616fe8-bucket.
המאמרים הבאים