במדריך הזה נסביר איך להגדיר את Application Integration כדי לקבל התראות על אשכולות של Google Kubernetes Engine (GKE) באימייל.
אתם יוצרים שילוב עם טריגר Pub/Sub כדי להאזין לנושא קיים שמקבל התראות מאשכול GKE. לאחר מכן, תוכלו להשתמש במשימות מיפוי נתונים ו-Data Transformer כדי להמיר את ההודעה מ-Pub/Sub וליצור תוכן אימייל בטקסט פשוט.
מטרות
- יוצרים אפליקציה של Application Integration כדי לקבל ולשנות התראות חיצוניות מ-GKE.
- כתיבת משימה של שליחת אימייל ששולחת התראות Pub/Sub לאימייל.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי ליצור הערכת עלויות בהתאם לשימוש החזוי, אתם יכולים להשתמש במחשבון התמחור.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
- נכנסים לחשבון 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 GKE, Application Integration and Pub/Sub APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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 GKE, Application Integration and Pub/Sub APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- הפעלת קבלת התראות על אשכולות GKE דרך Pub/Sub
- אם זו הפעם הראשונה שאתם משתמשים ב-Application Integration בפרויקט, אתם צריכים להגדיר את Application Integration. כדי לעשות זאת, עוברים לדף Application Integration במסוף ולוחצים על Provision (הקצאת משאבים).
התפקידים הנדרשים
כדי לוודא שלחשבון השירות service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com יש את ההרשאות הנדרשות להגדרת התראות באימייל לגבי התראות על אשכולות, צריך לבקש מהאדמין להקצות לחשבון השירות service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com את תפקידי ה-IAM הבאים בפרויקט:
- עריכת Pub/Sub (
roles/pubsub.editor) - עריכת Application Integration (
roles/integrations.integrationEditor) - Application Integration Invoker (
roles/integrations.integrationInvoker)
הגדרת התראות לאשכול GKE
כדי להשתמש ב-Pub/Sub לקבלת התראות לגבי אשכול GKE, פועלים לפי ההוראות במאמר קבלת התראות לגבי אשכול באמצעות Pub/Sub.
יצירת שילוב חדש
כדי ליצור שילוב חדש, מבצעים את הפעולות הבאות:
נכנסים לדף Application Integration במסוף Google Cloud .
בתפריט הניווט, לוחצים על Integrations (שילובים). מוצג הדף שילובים.
לוחצים על Create integration (יצירת שילוב).
בקטע Integration name, מזינים שם לשילוב שיוצרים.
אם הפעלתם כמה אזורים, תופיע אפשרות בתפריט הנפתח לבחירת אזור לשילוב. אם הופעל רק אזור אחד, הוא יהיה ברירת המחדל והתפריט הנפתח לא יוצג.
הערה: בתפריט הנפתח Regions מופיעים רק האזורים שהוקצו בפרויקטGoogle Cloud . כדי להקצות אזור חדש, לוחצים על הפעלת אזור שמופיע בחלק התחתון של התיבה.
לוחצים על Create כדי לפתוח את עורך השילובים.
הוספה והגדרה של טריגר Pub/Sub
כדי להוסיף טריגר Pub/Sub לשילוב, פועלים לפי השלבים הבאים:
בכלי לעריכת שילובים, בוחרים באפשרות Triggers (טריגרים) כדי להציג רשימה של טריגרים זמינים.
לוחצים על רכיב הטריגר Pub/Sub וממקמים אותו באזור העיצוב.
לוחצים על רכיב Pub/Sub trigger (טריגר Pub/Sub) בעורך השילובים כדי להציג את חלונית הגדרת הטריגר.
בשדה Pub/Sub topic, מציינים את הנושא שהטריגר צריך להאזין לו, בפורמט הבא:
projects/PROJECT_ID/topics/TOPIC_IDמחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: הפרויקט ב- Google Cloud שבו נוצר הנושא.
TOPIC_ID: המזהה של נושא ה-Pub/Sub שיצרתם בהגדרת הסביבה.לדוגמה, אם שם הפרויקט הוא
my-projectושם הנושא הואgke-notifications, מזינים:projects/my-project/topics/gke-notificationsכדי לראות את כל הנושאים שזמינים ב Google Cloud פרויקט, אפשר לעיין בעמודה Topic name בTopics. בחלונית ההגדרות של הטריגר Pub/Sub, השדה Trigger Output יאוכלס באופן אוטומטי במשתנה שיכיל את ההודעה של Pub/Sub.
הוספה והגדרה של משימת מיפוי נתונים
המשימה 'מיפוי נתונים' עוזרת לחלץ משתנים רלוונטיים מההתראה של Pub/Sub. הוא מקבל כקלט את קובץ ה-JSON של ההודעה ב-Pub/Sub, ומחלץ משתנים כפלט.
כדי להגדיר את המשימה Data Mapping (מיפוי נתונים):
לוחצים על משימות כדי להציג רשימה של משימות זמינות.
לוחצים על הרכיב מיפוי נתונים וממקמים אותו בכלי לעריכת שילובים.
לוחצים על המשימה מיפוי נתונים בכלי העיצוב כדי לפתוח את חלונית ההגדרות של המשימה.
כדי להוסיף חיבור קצה מטריגר Pub/Sub למיפוי נתונים, מחזיקים את מצביע העכבר מעל נקודת בקרה בטריגר Pub/Sub, ואז גוררים קו לנקודת בקרה במשימת מיפוי הנתונים. הקצה מציין את זרימת הבקרה מהטריגר של Pub/Sub למשימת מיפוי הנתונים.
לוחצים על פתיחת הכלי למיפוי נתונים. הכלי לעריכת מיפוי נתונים מאפשר לכם למפות משתני קלט למשתני הפלט שנבחרו, באמצעות פונקציות הטרנספורמציה שזמינות. הפלט זמין כמשתנה לכל משימת שילוב או טריגר אחרים. למידע נוסף על משתנים ב-Application Integration, קראו את המאמר משתנים.
במדריך הזה, פועלים לפי השלבים הבאים כדי ליצור מיפוי באמצעות
CloudPubSubMessageכקלט:- מרחיבים את משתנה ה-JSON
CloudPubSubMessageברשימה Variables וגוררים את המשתנהCloudPubSubMessage.dataלשורה הראשונה Input. - כדי ליצור משתנה פלט חדש שיכיל את הערך של הנתונים שעברו טרנספורמציה, לוחצים על השורה הראשונה בעמודה פלט. לאחר מכן, מבצעים את הפעולות הבאות:
- בשדה Name, מזינים
message_data. - ברשימה Variable Type, בוחרים באפשרות Output from integration.
- ברשימה סוג נתונים, בוחרים באפשרות מחרוזת.
- לוחצים על יצירה. המשתנה
message_dataמופיע בפלט.
- בשדה Name, מזינים
- גוררים את המשתנה
CloudPubSubMessage.attributesמהרשימה משתנים לשורה השנייה בעמודה "קלט". לוחצים על השורה השנייה בעמודה Output כדי ליצור משתנה פלט חדש שיכיל את הערך של המטען הייעודי (payload) של ה-JSON עם מאפייני האשכול. ממלאים את השדות הבאים:
- בשדה Name, מזינים
attributes. - ברשימה סוג משתנה, בוחרים באפשרות ללא.
- ברשימה Data Type, בוחרים באפשרות JSON.
בוחרים באפשרות Enter a JSON schema מתוך JSON schema options, ומדביקים את המטען הייעודי (payload) הבא:
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "cluster_name": { "type": "string" }, "payload": { "type": "string" }, "project_id": { "type": "string" }, "cluster_location": { "type": "string" }, "type_url": { "type": "string" } } }לוחצים על יצירה. המשתנה
attributesמופיע בפלט. מוודאים שמשתנה המאפיינים נראה בערך כך:
- בשדה Name, מזינים
לוחצים על השורה השלישית בעמודה קלט ובוחרים באפשרות
attributes.cluster_nameמהחלונית משתנים. יכול להיות שתצטרכו להתחיל להקליד attributes כדי לראות את כל 5 המאפיינים שהוגדרו מהסכימה שהוזנה בשלב הקודם.לוחצים על השורה המתאימה בעמודה Output כדי ליצור משתנה פלט חדש שיכיל את הערך של מאפיין שם האשכול. ממלאים את השדות הבאים:
- בשדה Name, מזינים
cluster_name. - ברשימה Variable Type, בוחרים באפשרות Output from integration.
- ברשימה סוג נתונים, בוחרים באפשרות מחרוזת.
- לוחצים על יצירה. המשתנה
cluster_nameמופיע בפלט.
- בשדה Name, מזינים
חוזרים על השלבים ה' וו' עבור
project_id, cluster_location, type_urlו-payload.אחרי שמסיימים את המיפוי, סוגרים את הכלי לעריכת מיפוי נתונים. כל השינויים יישמרו באופן אוטומטי.
- מרחיבים את משתנה ה-JSON
הוספה והגדרה של המשימה Data Transformer (Script)
המשימה Data Transformer מקבלת כקלט משתנים שחולצו מהמשימה מיפוי נתונים, ומשנה אותם לגוף ההודעה לצריכה של משתמשי קצה.
כדי להגדיר את המשימה Data Transformer:
- לוחצים על משימות כדי להציג רשימה של משימות זמינות.
- לוחצים על הרכיב Data Transformer (Script) (המרת נתונים (סקריפט)) וממקמים אותו בכלי לעריכת שילובים.
- לוחצים על המשימה Data Transformer בכלי העיצוב כדי לפתוח את חלונית ההגדרות של המשימה.
- כדי להוסיף חיבור קצה ממשימת מיפוי הנתונים למשימת טרנספורמציית הנתונים, מעבירים את מצביע העכבר מעל נקודת בקרה במיפוי הנתונים, ואז גוררים קו לנקודת בקרה במשימת טרנספורמציית הנתונים. הקצה מציין את זרימת השליטה ממשימת מיפוי הנתונים למשימת המרת הנתונים.
לוחצים על פתיחת הכלי לעריכת שינוי נתונים. עורך הטרנספורמציה של הנתונים מאפשר לכם לכתוב, לערוך ולהעריך תבניות Jsonnet בהתאמה אישית כדי לבצע מיפוי נתונים בשילוב שלכם. הפלט זמין כמשתנה לכל משימת שילוב או טריגר אחרים. לפרטים נוספים על משימת הטרנספורמציה הזו, אפשר לעיין במאמר משימת טרנספורמציה של נתונים. כדי ליצור סקריפט במדריך למתחילים הזה, פועלים לפי השלבים הבאים:
לוחצים על Create בחלונית Variables שמימין. חלונית Create variable תיפתח בצד שמאל. ממלאים את השדות הבאים:
- Name: (שם): מזינים
full_message. - בוחרים באפשרות
Output from integrationבתיבה הנפתחת סוג משתנה. - בוחרים באפשרות
Stringבתיבה הנפתחת סוג נתונים. - לוחצים על Create כדי ליצור את המשתנה ולסגור את החלונית. המשתנה החדש
full_messageיופיע ברשימה משתנים.
- Name: (שם): מזינים
בוחרים באפשרות סקריפט.
אפשר להשתמש בסקריפט לדוגמה הבא כתבנית לגוף ההודעה כששולחים התראות מהאשכול:
local message_data = std.extVar("message_data"); local cluster_name = std.extVar("cluster_name"); local project_id = std.extVar("project_id"); local cluster_location = std.extVar("cluster_location"); local type_url = std.extVar("type_url"); local payload = std.extVar("payload"); {full_message: "Project ID: " + project_id + "\n" + "Cluster Name: " + cluster_name + "\n" + "Location: " + cluster_location + "\n" + "Event Type: " + type_url + "\n" + "Message: " + message_data + "\n" + "Payload: " + std.manifestJson(std.parseJson(payload))}אחרי שמסיימים את המיפוי, סוגרים את הכלי לעריכת מיפוי נתונים. כל השינויים יישמרו אוטומטית.
הוספה והגדרה של המשימה 'שליחת אימייל'
כדי להגדיר את המשימה Send Email:
- בוחרים באפשרות משימות בכלי לעריכת שילובים כדי להציג את רשימת המשימות הזמינות.
- לוחצים על הרכיב Send Email (שליחת אימייל) וממקמים אותו בעורך השילוב.
- כדי להוסיף חיבור קצה ממשימת Data Transformer (המרת נתונים) למשימת Send email (שליחת אימייל), מעבירים את מצביע העכבר מעל נקודת בקרה במשימת Data Transformer (המרת נתונים), ואז גוררים קו לנקודת בקרה במשימת Send email (שליחת אימייל). הקצה מציין את זרימת הבקרה ממשימת Data Transformer למשימת Send email.
- לוחצים על הרכיב Send Email במעצב כדי לפתוח את חלונית ההגדרות של המשימה. מגדירים את המאפיינים הבאים:
- אל הנמען/ים: מזינים כתובת אימייל. האימייל הזה ישמש לאישור השלמת השילוב.
- נושא: מזינים
GKE Notifications. - Body in Plain Text: בוחרים את המשתנה
full_messageשנוצר קודם במשימה Data Transformer. - אפשר להשאיר את שאר האפשרויות בהגדרות ברירת המחדל.
השינויים שתבצעו במאפיינים יישמרו באופן אוטומטי, והאזור המשותף אמור להיראות בערך כך:

בדיקת השילוב
כדי לבדוק את השילוב החדש, עוברים לסרגל הניווט בחלק העליון של דיאגרמת השילוב ולוחצים על בדיקה. חלונית תיפתח בצד שמאל. אפשר להשתמש בהודעת Pub/Sub לדוגמה הבאה בקטע Add a json value:
{
"data": "Node pool projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool is upgrading to version 1.29.1-gke.1589017.",
"attributes": {
"cluster_location": "us-central1-c",
"cluster_name": "cluster-1",
"payload": "{\"resourceType\":\"NODE_POOL\",\"operation\":\"operation-upgrade\",\"operationStartTime\":\"2024-05-07T20:09:35.528855756Z\",\"currentVersion\":\"1.28.7-gke.1026000\",\"targetVersion\":\"1.29.1-gke.1589017\",\"resource\":\"projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool\"}",
"project_id": "my-project",
"type_url": "type.googleapis.com/google.container.v1beta1.UpgradeEvent"
}
}
אחרי שלוחצים על הלחצן בדיקת השילוב, נשלח אימייל לכתובת האימייל שהגדרתם במשימה 'שליחת אימייל'.
פרסום השילוב
אחרי שתבדקו את השילוב ותוודאו שהוא פועל, תוכלו ללחוץ על פרסום כדי שהשילוב יתחיל לעבד את ההודעות.
אפשר לערוך רק את גרסה DRAFT של השילוב, ולהריץ רק את גרסה ACTIVE של השילוב. כדי לערוך את השילוב, לוחצים על הפעלת עריכה בדף של כלי העיצוב של השילוב, ואז יוצרים טיוטה. מידע נוסף מופיע במאמר בנושא נעילות של עריכת אינטגרציות.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת משאבים בודדים
המאמרים הבאים
- מידע על סוגי ההתראות על אשכולות
- אפשר לעיין במסמכי התיעוד של Pub/Sub.