הרצת DAG של Apache Airflow ב-Managed Airflow (דור 3)
במדריך הזה נסביר איך ליצור סביבת Managed Service for Apache Airflow ולהריץ DAG של Apache Airflow ב-Managed Airflow (דור 3).
אם אתם חדשים ב-Airflow, כדאי לקרוא את המדריך למושגים של Airflow במסמכי התיעוד של Apache Airflow, כדי לקבל מידע נוסף על המושגים, האובייקטים והשימוש ב-Airflow.
אם אתם רוצים להשתמש ב-Google Cloud CLI, קראו את המאמר הפעלת Apache Airflow DAG ב-Managed Service for Apache Airflow (Google Cloud CLI).
אם אתם רוצים ליצור סביבה באמצעות Terraform, קראו את המאמר יצירת סביבות (Terraform).
לפני שמתחילים
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 Cloud de Confiance 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).
להקצות לו תפקיד, כמו שמתואר במאמרי העזרה של ניהול הזהויות והרשאות הגישה (IAM). התפקיד הנדרש הוא Composer Worker (
composer.worker).
יצירת סביבה
נכנסים לדף Create environment במסוף Cloud de Confiance .
בשדה Name, מזינים
example-environment.ברשימה הנפתחת Location, בוחרים אזור לסביבת Managed Airflow. במדריך הזה משתמשים באזור
us-central1.לאפשרויות אחרות של הגדרת הסביבה, משתמשים בברירות המחדל שסופקו.
לוחצים על Create וממתינים עד שהסביבה תיווצר.
בסיום, מופיע סימן וי ירוק ליד שם הסביבה.
יצירת קובץ DAG
Airflow DAG הוא אוסף של משימות מאורגנות שרוצים לתזמן ולהריץ. DAGs מוגדרים בקובצי Python רגילים.
במדריך הזה נעשה שימוש ב-DAG לדוגמה של Airflow, שמוגדר בקובץ quickstart.py.
קוד Python בקובץ הזה מבצע את הפעולות הבאות:
- יוצר DAG,
composer_sample_dag. ה-DAG הזה פועל כל יום. - מבצע משימה אחת,
print_dag_run_conf. המשימה מדפיסה את ההגדרות של הרצת ה-DAG באמצעות האופרטור bash.
שומרים עותק של הקובץ quickstart.py במחשב המקומי:
העלאת קובץ ה-DAG לקטגוריה של הסביבה
לכל סביבה של Managed Airflow משויכת קטגוריה של Cloud Storage. Airflow ב-Managed Airflow מתזמן רק קובצי DAG שנמצאים בתיקייה /dags בקטגוריה הזו.
כדי לתזמן את ה-DAG, מעלים את quickstart.py מהמכונה המקומית לתיקייה /dags של הסביבה:
נכנסים לדף Environments במסוף Cloud de Confiance .
ברשימת הסביבות, לוחצים על שם הסביבה,
example-environment. הדף Environment details נפתח.לוחצים על Open DAGs folder. הדף Bucket details נפתח.
לוחצים על העלאת קבצים ובוחרים את העותק של
quickstart.py.כדי להעלות את הקובץ, לוחצים על פתיחה.
הצגת ה-DAG
אחרי שמעלים את קובץ ה-DAG, Airflow מבצע את הפעולות הבאות:
- מנתח את קובץ ה-DAG שהעליתם. יכול להיות שיעברו כמה דקות עד שה-DAG יהיה זמין ל-Airflow.
- מוסיפים את ה-DAG לרשימת ה-DAGs הזמינים.
- מפעיל את ה-DAG לפי לוח הזמנים שציינתם בקובץ ה-DAG.
כדי לוודא שה-DAG עבר עיבוד ללא שגיאות ושהוא זמין ב-Airflow, בודקים אותו בממשק המשתמש של DAG. ממשק המשתמש של DAG הוא ממשק של Managed Airflow לצפייה במידע על DAG במסוף Cloud de Confiance . בנוסף, Managed Airflow מספק גישה לממשק המשתמש של Airflow, שהוא ממשק אינטרנט מקורי של Airflow.
ממתינים כחמש דקות כדי לאפשר ל-Airflow לעבד את קובץ ה-DAG שהעליתם קודם, ולהשלים את הרצת ה-DAG הראשונה (הסבר בהמשך).
נכנסים לדף Environments במסוף Cloud de Confiance .
ברשימת הסביבות, לוחצים על שם הסביבה,
example-environment. הדף Environment details נפתח.עוברים לכרטיסייה DAGs.
מוודאים שה-DAG
composer_quickstartמופיע ברשימת ה-DAGs.
תרשים 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. אפשר לראות את הפלט של הפקודה
echoביומנים.
איור 4. יומנים של המשימה print_dag_run_conf (לחצו כדי להגדיל)
הסרת המשאבים
כדי לא לצבור חיובים בחשבון Cloud de Confiance על המשאבים שבהם השתמשתם בדף הזה, מבצעים את הפעולות הבאות.
מוחקים את המשאבים שבהם השתמשתם במדריך הזה:
מוחקים את סביבת Managed Airflow:
נכנסים לדף Environments במסוף Cloud de Confiance .
לוחצים על
example-environmentואז על מחיקה.מחכים עד שהסביבה תימחק.
מוחקים את הקטגוריה של הסביבה. מחיקת סביבת Managed Airflow לא מוחקת את הקטגוריה שלה.
במסוף Cloud de Confiance , נכנסים לדף Storage > Browser.
בוחרים את הקטגוריה של הסביבה ולוחצים על Delete. לדוגמה, אפשר לתת לקטגוריה הזו את השם
us-central1-example-environ-c1616fe8-bucket.
המאמרים הבאים