הגדרת אשכולות לקבלת התראות באימייל

במדריך הזה נסביר איך להגדיר את Application Integration כדי לקבל התראות על אשכולות של Google Kubernetes Engine ‏ (GKE) באימייל.

אתם יוצרים שילוב עם טריגר Pub/Sub כדי להאזין לנושא קיים שמקבל התראות מאשכול GKE. לאחר מכן תוכלו להשתמש במשימות 'מיפוי נתונים' ו'המרת נתונים' כדי להמיר את ההודעה ב-Pub/Sub וליצור תוכן אימייל בטקסט פשוט.

מטרות

  • יוצרים אפליקציה של Application Integration כדי לקבל ולשנות התראות חיצוניות מ-GKE.
  • כתיבת משימה של שליחת אימייל ששולחת התראות Pub/Sub לאימייל.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the GKE, Application Integration and Pub/Sub APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the GKE, Application Integration and Pub/Sub APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. הפעלת קבלת התראות על אשכולות GKE דרך Pub/Sub
  9. אם זו הפעם הראשונה שאתם משתמשים בשירות Application Integration בפרויקט, אתם צריכים לוודא שהגדרתם את השירות Application Integration.

התפקידים הנדרשים

כדי לוודא שלחשבון השירות service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com יש את ההרשאות הנדרשות להגדרת התראות באימייל לגבי אשכולות, צריך לבקש מהאדמין להקצות לחשבון השירות service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com את תפקידי ה-IAM הבאים בפרויקט:iam.gserviceaccount.com

הגדרת התראות לגבי אשכול GKE

כדי להשתמש ב-Pub/Sub לקבלת התראות לגבי אשכול GKE, פועלים לפי ההוראות במאמר קבלת התראות על אשכול באמצעות Pub/Sub.

יצירת שילוב חדש

כדי ליצור שילוב חדש, מבצעים את הפעולות הבאות:

  1. עוברים לדף Application Integration במסוף Google Cloud .

    מעבר אל Application Integration

  2. בתפריט הניווט, לוחצים על Integrations (שילובים). מוצג הדף Integrations (שילובים).

  3. לוחצים על יצירת שילוב.

  4. בשדה Integration name, מזינים שם לשילוב שיוצרים.

  5. אם הפעלתם כמה אזורים, יופיע תפריט נפתח שבו תוכלו לבחור אזור לשילוב. אם הופעל רק אזור אחד, הוא יהיה ברירת המחדל והתפריט הנפתח לא יוצג.

    הערה: בתפריט הנפתח אזורים מופיעים רק האזורים שהוקצו בGoogle Cloud פרויקט. כדי להקצות אזור חדש, לוחצים על הפעלת אזור שמופיע בחלק התחתון של התיבה.

  6. לוחצים על יצירה כדי לפתוח את כלי העריכה של השילוב.

הוספה והגדרה של טריגר Pub/Sub

כדי להוסיף טריגר Pub/Sub לשילוב, פועלים לפי השלבים הבאים:

  1. בכלי לעריכת שילובים, בוחרים באפשרות Triggers (טריגרים) כדי להציג רשימה של טריגרים זמינים.

  2. לוחצים על רכיב הטריגר Pub/Sub וממקמים אותו באזור העיצוב.

  3. לוחצים על רכיב Pub/Sub trigger (טריגר Pub/Sub) בכלי לעריכת שילובים כדי לראות את חלונית הגדרות הטריגר.

  4. בשדה 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 פרויקט, אפשר לעיין בעמודה שם הנושא בנושאים. חלונית ההגדרות של טריגר Pub/Sub תאכלס באופן אוטומטי את השדה Trigger Output במשתנה שיכיל את הודעת Pub/Sub.

הוספה והגדרה של משימת מיפוי נתונים

המשימה 'מיפוי נתונים' עוזרת לחלץ משתנים רלוונטיים מההתראה של Pub/Sub. הוא מקבל כקלט קובץ JSON של הודעת Pub/Sub ומחלץ משתנים כפלט.

כדי להגדיר את המשימה Data Mapping (מיפוי נתונים):

  1. לוחצים על משימות כדי להציג רשימה של משימות זמינות.

  2. לוחצים על הרכיב מיפוי נתונים וממקמים אותו בכלי לעריכת שילובים.

  3. לוחצים על המשימה מיפוי נתונים בכלי העיצוב כדי לפתוח את חלונית ההגדרות של המשימה.

  4. כדי להוסיף חיבור קצה מטריגר Pub/Sub למיפוי נתונים, מחזיקים את מצביע העכבר מעל נקודת בקרה בטריגר Pub/Sub, ואז גוררים קו לנקודת בקרה במשימת מיפוי הנתונים. הקצה מציין את זרימת הבקרה מהטריגר של Pub/Sub למשימת מיפוי הנתונים.

  5. לוחצים על פתיחת הכלי למיפוי נתונים. בעורך מיפוי הנתונים אפשר למפות משתני קלט למשתני הפלט שנבחרו, באמצעות פונקציות הטרנספורמציה שזמינות. הפלט זמין כמשתנה לכל משימת שילוב או טריגר אחרים. מידע נוסף על משתנים ב-Application Integration זמין במאמר משתנים.

    במדריך הזה, פועלים לפי השלבים הבאים כדי ליצור מיפוי באמצעות CloudPubSubMessage כקלט:

    1. מרחיבים את משתנה ה-JSON‏ CloudPubSubMessage ברשימה Variables וגוררים את המשתנה CloudPubSubMessage.data לשורה הראשונה Input.
    2. כדי ליצור משתנה פלט חדש שיכיל את הערך של הנתונים שעברו טרנספורמציה, לוחצים על השורה הראשונה בעמודה פלט. לאחר מכן, מבצעים את הפעולות הבאות:
      1. בשדה שם מזינים message_data.
      2. ברשימה סוג משתנה בוחרים באפשרות פלט משילוב.
      3. ברשימה סוג נתונים, בוחרים באפשרות מחרוזת.
      4. לוחצים על יצירה. המשתנה message_data מופיע בפלט.
    3. גוררים את המשתנה CloudPubSubMessage.attributes מהרשימה משתנים לשורה השנייה בעמודה 'קלט'.
    4. לוחצים על השורה השנייה בעמודה Output כדי ליצור משתנה פלט חדש שיכיל את הערך של מטען ייעודי (payload) ה-JSON עם מאפייני האשכול. ממלאים את השדות הבאים:

      1. בשדה שם מזינים attributes.
      2. מהרשימה סוג משתנה בוחרים באפשרות ללא.
      3. ברשימה סוג נתונים, בוחרים באפשרות JSON.
      4. בוחרים באפשרות Enter a JSON schema (הזנת סכימת JSON) מתוך JSON schema options (אפשרויות של סכימת JSON), ומדביקים את המטען הייעודי (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"
            }
          }
        }
        
      5. לוחצים על יצירה. המשתנה attributes מופיע בפלט. מוודאים שמשתנה המאפיינים נראה בערך כך:

        משתנים מקומיים של Application Integration

    5. לוחצים על השורה השלישית בעמודה קלט ובוחרים באפשרות attributes.cluster_name מהחלונית משתנים. יכול להיות שתצטרכו להתחיל להקליד attributes כדי לראות את כל 5 המאפיינים שהוגדרו מהסכימה שהוזנה בשלב הקודם.

    6. לוחצים על השורה המתאימה בעמודה פלט כדי ליצור משתנה פלט חדש שיכיל את הערך של מאפיין שם האשכול. ממלאים את השדות הבאים:

      1. בשדה שם מזינים cluster_name.
      2. ברשימה סוג משתנה בוחרים באפשרות פלט משילוב.
      3. ברשימה סוג נתונים, בוחרים באפשרות מחרוזת.
      4. לוחצים על יצירה. המשתנה cluster_name מופיע בפלט.
    7. חוזרים על שלבים ה ו-ו עבור project_id, ‏ cluster_location, ‏ type_url ו-payload.

    8. אחרי שמשלימים את המיפוי, סוגרים את הכלי לעריכת מיפוי נתונים. כל השינויים יישמרו אוטומטית.

הוספה והגדרה של המשימה Data Transformer (Script)

המשימה Data Transformer (המרת נתונים) מקבלת כקלט משתנים שחולצו מהמשימה Data Mapping (מיפוי נתונים) וממירה אותם לגוף ההודעה לצריכה של משתמשי קצה.

כדי להגדיר את המשימה Data Transformer:

  1. לוחצים על משימות כדי להציג רשימה של משימות זמינות.
  2. לוחצים על הרכיב Data Transformer (Script) וממקמים אותו בכלי לעריכת שילובים.
  3. לוחצים על המשימה Data Transformer (כלי לשינוי נתונים) בכלי העיצוב כדי לפתוח את חלונית ההגדרות של המשימה.
  4. כדי להוסיף חיבור קצה ממשימת מיפוי הנתונים למשימת טרנספורמציית הנתונים, מעבירים את מצביע העכבר מעל נקודת בקרה במיפוי הנתונים, ואז גוררים קו לנקודת בקרה במשימת טרנספורמציית הנתונים. הקצה מציין את זרימת הבקרה ממשימת מיפוי הנתונים למשימת שינוי הנתונים.
  5. לוחצים על פתיחת הכלי לעריכת טרנספורמציה של נתונים. הכלי לעריכת טרנספורמציה של נתונים מאפשר לכתוב, לערוך ולהעריך תבניות Jsonnet בהתאמה אישית כדי לבצע מיפוי נתונים בשילוב. הפלט זמין כמשתנה לכל משימת אינטגרציה או טריגר אחרים. לפרטים נוספים על משימת הטרנספורמציה הזו, אפשר לעיין במאמר משימת טרנספורמציה של נתונים. כדי ליצור סקריפט במדריך למתחילים הזה, פועלים לפי השלבים הבאים:

    1. לוחצים על יצירה בחלונית הימנית משתנים. תיפתח חלונית Create variable בצד שמאל. ממלאים את השדות הבאים:

      • שם: מזינים full_message.
      • בתפריט הנפתח סוג משתנה, בוחרים באפשרות Output from integration.
      • בוחרים באפשרות String בתיבה הנפתחת סוג הנתונים.
      • לוחצים על Create [יצירה] כדי ליצור את המשתנה ולסגור את החלונית. המשתנה החדש full_message יופיע ברשימה משתנים.
    2. בוחרים באפשרות תסריט.

    3. אפשר להשתמש בסקריפט לדוגמה הבא כתבנית לגוף ההודעה כששולחים התראות מהאשכול:

      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))}
      
    4. אחרי שמשלימים את המיפוי, סוגרים את הכלי לעריכת מיפוי נתונים. כל השינויים יישמרו אוטומטית.

הוספה והגדרה של המשימה 'שליחת אימייל'

כדי להגדיר את המשימה 'שליחת אימייל':

  1. בוחרים באפשרות משימות בכלי לעריכת שילובים כדי להציג את רשימת המשימות הזמינות.
  2. לוחצים על הרכיב Send Email (שליחת אימייל) וממקמים אותו בעורך השילוב.
  3. כדי להוסיף קצה חיבור ממשימת Data Transformer (המרת נתונים) למשימת Send email (שליחת אימייל), ממקמים את מצביע העכבר מעל נקודת בקרה במשימת Data Transformer (המרת נתונים), ואז גוררים קו לנקודת בקרה במשימת Send email (שליחת אימייל). הקצה מציין את זרימת השליטה ממשימת Data Transformer למשימת Send email.
  4. לוחצים על הרכיב Send Email (שליחת אימייל) בכלי העיצוב כדי לפתוח את חלונית ההגדרות של המשימה. מגדירים את המאפיינים הבאים:
    1. אל הנמען/ים: מזינים כתובת אימייל. תשתמשו באימייל הזה כדי לאשר שההטמעה הושלמה בהצלחה.
    2. נושא: Enter GKE Notifications.
    3. גוף ההודעה בטקסט פשוט: בוחרים את המשתנה full_message שנוצר קודם במשימה Data Transformer.
    4. אפשר להשאיר את שאר האפשרויות בהגדרת ברירת המחדל.

השינויים שתבצעו במאפיינים יישמרו אוטומטית, והאזור המשותף אמור להיראות בערך כך:

אזור העריכה של Application Integration

בדיקת השילוב

כדי לבדוק את השילוב החדש, עוברים לסרגל הניווט בחלק העליון של דיאגרמת השילוב ולוחצים על בדיקה. חלונית תיפתח בצד שמאל. אפשר להשתמש בהודעת Pub/Sub לדוגמה הבאה בקטע הוספת ערך JSON:

{
  "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 של השילוב. כדי לערוך את השילוב, לוחצים על Enable Editing (הפעלת עריכה) בדף של כלי העיצוב של השילוב, ואז יוצרים גרסת טיוטה. מידע נוסף מופיע במאמר נעילות של עריכת אינטגרציות.

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.

מחיקת הפרויקט

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

מחיקת משאבים בודדים

  1. מחיקת Application Integration.

  2. מחיקת נושא Pub/Sub.

המאמרים הבאים