במאמר הזה מוסבר איך ליצור תהליכי עבודה מבוססי-אירועים שמופעלים על ידי שינויים בסטטוס של משימות Dataflow.
לדוגמה, זרימת העבודה יכולה:
- שליחת התראה למהנדס תורן אם משימה קריטית נכשלת.
- התראה למשתמשים כשמשימה באצווה מסתיימת, או הפעלה של עבודת Dataflow אחרת.
- ניקוי משאבים שנעשה בהם שימוש בעבודה, כמו קטגוריות של Cloud Storage.
סקירה כללית
Eventarc הוא Google Cloud שירות שיכול להאזין לאירועים משירותים אחרים ולהפנות אותם ליעדים שונים.
כשמריצים משימה ב-Dataflow, המשימה עוברת בין מצבים שונים, כמו JOB_STATE_QUEUED, JOB_STATE_RUNNING ו-JOB_STATE_DONE.
שילוב של Dataflow עם Eventarc מאפשר להפעיל פעולה כשסטטוס של משימה משתנה.
Eventarc הוא שירות מנוהל, ולכן לא צריך להקצות או לנהל את התשתית הבסיסית.
לפני שמתחילים
- נכנסים לחשבון 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.
Enable the Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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.
Enable the Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
כדי להשתמש ב-Eventarc API, בפרויקט שלכם צריכה להיות מכסה מספקת. בנוסף, לחשבון השירות שמשויך לטריגר Eventarc צריכות להיות ההרשאות המתאימות.
בחירת יעד לאירוע
בוחרים יעד לאירוע כדי לקבל את האירוע. היעד קובע את השלב הבא בתהליך העבודה.
לדוגמה:
- כדי לשלוח התראת SMS, אפשר להשתמש בפונקציות Cloud Run כדי ליצור טריגר HTTP עצמאי.
- לתהליך עבודה מורכב יותר, אפשר להשתמש בתכונה 'תהליכי עבודה'.
- אם צינור הנתונים של Dataflow הוא חלק מפתרון גדול יותר שפועל ב-Google Kubernetes Engine, הטריגר יכול לנתב את האירוע לשירות GKE שפועל באשכול.
מידע נוסף על סגנון הארכיטקטורה הזה זמין במאמר ארכיטקטורות מבוססות-אירועים במסמכי התיעוד של Eventarc.
יצירת טריגר
כדי ליצור טריגר Eventarc לשינויים במצב של משימת Dataflow, אפשר לעיין באחד מהמסמכים הבאים:
- העברת אירועים מ-Dataflow ל-Cloud Run
- העברת אירועים מ-Dataflow אל Google Kubernetes Engine
- העברת אירועים מ-Dataflow אל Workflows
- יצירת טריגר לפונקציות Cloud Run
אופציונלי: אתם יכולים לסנן אירועים לפי מזהה משימה ב-Dataflow. לדוגמה, אפשר לבחור מזהי משימות שתואמים לביטוי רגולרי. מידע נוסף זמין במאמר הסבר על דפוסי נתיבים.
עיבוד אירועים
נתוני האירוע מתארים את עבודת Dataflow בזמן שהאירוע הופעל. המטען הייעודי (payload) דומה לסוג המשאב Job, אבל השדות steps, pipeline_description ו-transform_name_mapping מושמטים. בנוסף, יכול להיות שחלק מהשדות לא יופיעו, בהתאם למצב העבודה.
דוגמה למטען ייעודי:
{
"id":"2023-04-13_16_28_37-12345678",
"projectId":"my-project",
"name":"job1",
"currentState":"JOB_STATE_QUEUED",
"currentStateTime":"2023-04-13T23:28:37.437622Z",
"createTime":"2023-04-13T23:28:37.437622Z",
"location":"us-central1",
"startTime":"2023-04-13T23:28:37.437622Z"
}
מידע נוסף על סטטוסים של משרות זמין בנושאים הבאים: