פיתוח טרנספורמציות בהתאמה אישית

נתמך ב:

אתם יכולים ליצור פונקציות טרנספורמציה מותאמות אישית מבוססות Python ואופרטורים לוגיים ישירות בסביבת הפיתוח המשולבת (IDE), ולהשתמש בהם ב-Playbook שלכם לתרחישי שימוש מורכבים ומגוונים.

חבילות של תוספים

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

שיטות מומלצות לשימוש בחבילות הרחבות

  • איחוד: יוצרים חבילת הרחבות ראשית אחת ומוסיפים לה כמה פונקציות טרנספורמציה או אופרטורים לוגיים.
  • הפרדה: יוצרים חבילת תוספים חדשה כשצריך קבוצה אחרת של ספריות Python (רכיבים תלויים) שעלולות להתנגש עם החבילה הראשית.

יצירת חבילת תוספים

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

  1. עוברים אל תגובה > IDE.
  2. לוחצים על הוספה יצירת פריט חדש.
  3. בתפריט הנפתח, בוחרים באפשרות חבילת תוספים.
  4. מזינים שם ייחודי לחבילת התוספים.
  5. לוחצים על Save.

העלאת יחסי תלות

בדומה לשילובים רגילים, חבילות ההרחבות פועלות בסביבה וירטואלית שבה אפשר לנהל ספריות Python.

כדי לנהל את הספריות:

  1. פותחים את הגדרות חבילת התוספים ב-IDE.
  2. מוסיפים את ספריות Python הנדרשות מ-PyPi או מעלים אותן מהמחשב.

התלויות האלה זמינות לכל הטרנספורמציות והאופרטורים הלוגיים שכלולים בחבילת התוספים הספציפית הזו.

ייבוא וייצוא

אתם יכולים לייבא ולייצא באופן ידני חבילות של תוספים ישירות בממשק של ה-IDE.

כלי המרה בהתאמה אישית

טרנספורמציות בהתאמה אישית הן פונקציות Python בהגדרת המשתמש שמרחיבות את הפונקציות המובנות בכלי ליצירת ביטויים. אפשר ליצור אותן ישירות בסביבת הפיתוח המשולבת כדי לחלץ נתונים ולשנות אותם, ואפשר להשתמש בהן לצד פונקציות מובנות קיימות.

יצירת טרנספורמר בהתאמה אישית

כדי להגדיר טרנספורמציה חדשה בהתאמה אישית:

  1. בסביבת הפיתוח המשולבת, מאתרים את חבילת התוספים הרצויה.
  2. בוחרים את חבילת התוספים שאליה רוצים להוסיף פריט חדש.
  3. בוחרים באפשרות פונקציית טרנספורמציה בהתאמה אישית.
  4. נותנים לו שם.
  5. אופציונלי: מוסיפים תיאור. ההסבר הזה מוצג כשמעבירים את העכבר מעל הטרנספורמציה המותאמת אישית בכלי ליצירת ביטויים.
  6. מגדירים את הלוגיקה של הסקריפט באמצעות Python. אפשר להשתמש בתבנית ברירת המחדל שמופיעה כאן כנקודת התחלה.
    • הסקריפט חייב לכלול פונקציית main, כמו שמוצג בתבנית המוגדרת מראש.
    • הסקריפט חייב להחזיר תוצאה לכלי לבניית ביטויים באמצעות הפונקציה end של ה-SDK.
    • הקלט של הטרנספורמציה המותאמת אישית יכול להיות מסוגים שונים (לדוגמה, מחרוזת או רשימה). חשוב להמיר אותו לסוג הצפוי בפונקציה main.
    • אפשר להשתמש רק בחלק מהשיטות של ה-SDK בסביבת הפיתוח המשולבת (IDE) עבור רכיבי Transformer:
      • ‫transformer.extract_param("ParamName"): כדי לאחזר ערכי קלט.
      • ‫transformer.LOGGER: כדי לכתוב יומנים לניפוי באגים.
      • ‫transformer.end(result): כדי להחזיר את הערך שעבר טרנספורמציה.
  7. יוצרים פרמטרים:
    • כל פונקציית טרנספורמציה מותאמת אישית כוללת פרמטר Input כברירת מחדל. הפרמטר הזה מייצג את נתוני הקלט, שהם placeholder שהפונקציה חלה עליו. אי אפשר למחוק את הפרמטר הזה.
    • בנוסף, אתם יכולים להוסיף פרמטרים אופציונליים לשימוש בפונקציה.
  8. תיעוד (אופציונלי): מגדירים תיעוד במוצר עבור הכלי ליצירת ביטויים:
    • קלט צפוי: תיאור של סוג הנתונים שהפונקציה אמורה לקבל עבור הטרנספורמציה הזו (לדוגמה, 'מחרוזת' או 'רשימת מחרוזות').
    • פלט צפוי: תיאור של סוג הנתונים שהפונקציה אמורה להחזיר עבור הטרנספורמר הזה (לדוגמה, "בוליאני").
    • דוגמה לשימוש: תן דוגמה להפעלת הפונקציה (לדוגמה, if_empty("new_value")).

אתם יכולים לבדוק את הלוגיקה של פונקציית ההמרה המותאמת אישית ישירות בסביבת הפיתוח המשולבת לפני שמשתמשים בה ב-Playbook. כך תוכלו לוודא שסקריפט Python שלכם מטפל בצורה נכונה בסוגים שונים של קלט ופרמטרים, ומחזיר את התוצאות הצפויות.

זמן קצוב לתפוגה

  • Default Timeout: 1 minute.
  • זמן קצוב לתפוגה מקסימלי: 3 דקות.

שימוש בטרנספורמרים בהתאמה אישית בכלי לבניית ביטויים

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

תמיכה בכל הפלייסהולדרים (JSON ולא JSON)

הכלי ליצירת ביטויים תומך בכל מצייני המיקום שמוצגים בכלי לעיצוב של Playbook, כולל תוצאות שאינן בפורמט JSON.

לפלייסהולדרים שאינם JSON:

  • אפשר להזין נתוני דוגמה באופן ידני בכלי ליצירת ביטויים כדי לבדוק את הלוגיקה מול סוגים שונים של קלט: מחרוזת, רשימה (ערכים מופרדים בפסיקים) ו-JSON.
  • בדיקה עם סוג קלט לא מבטיחה שהפלייסהולדר יחזיר את הסוג הספציפי הזה בזמן הריצה.
  • רוב הפלייסהולדרים מוחלפים במחרוזות, חוץ מסוגים ספציפיים שמוחלפים במחרוזת או ברשימה בהתאם לכמות שלהם (לדוגמה, entity.identifier). במקרים כאלה, מומלץ תמיד להתייחס לקלט כרשימה.

טיפול בשגיאות

אם פונקציית טרנספורמציה מותאמת אישית נתקלת בשגיאה במהלך ההפעלה, פעולת ה-Playbook שמשתמשת בטרנספורמציה הזו נכשלת. הודעת השגיאה הספציפית שנוצרה על ידי סקריפט Python מוצגת במסך בתצוגת ההרצה של ספר ההפעלה, כך שאפשר לפתור בעיות בלוגיקה ישירות.

אופרטורים לוגיים בהתאמה אישית

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

יצירת אופרטור לוגי בהתאמה אישית

כדי להגדיר אופרטור לוגי חדש, פועלים לפי השלבים הבאים:

  1. ב-IDE, מאתרים את חבילת התוספים הרצויה.
  2. בוחרים באפשרות אופרטור לוגי מותאם אישית.
  3. נותנים שם לשיחה.
  4. אופציונלי: מוסיפים תיאור לתפריט של האופרטורים הלוגיים ב-Playbook Designer.
  5. מגדירים את הלוגיקה של הסקריפט באמצעות Python. אפשר להשתמש בתבנית המוגדרת מראש שמופיעה כאן כנקודת התחלה.
    • הסקריפט חייב לכלול פונקציה בשם main.
    • הסקריפט צריך להחזיר תוצאה בוליאנית לתנאי באמצעות הפונקציה end של ה-SDK.
    • אפשר להשתמש רק בחלק משיטות ה-SDK בסביבת הפיתוח המשולבת (IDE) עבור אופרטורים לוגיים:
      • ‫logical_operator.extract_param("ParamName"): כדי לאחזר ערכי קלט.
      • logical_operator.LOGGER: כדי לכתוב יומנים לניפוי באגים.
      • ‫logical_operator.end(result): התוצאה היא ערך בוליאני (true או false).

אתם יכולים לבדוק את הלוגיקה של האופרטור הלוגי המותאם אישית ישירות בסביבת הפיתוח המשולבת (IDE). כך תוכלו להזין ערכי בדיקה לארגומנטים ולוודא שהפונקציה מחזירה את התוצאה הבוליאנית הנכונה (True או False) על סמך התנאים שהגדרתם.

פרמטרים

אופרטורים לוגיים בהתאמה אישית מקבלים שני פרמטרים: צד שמאל (חובה ואי אפשר לערוך אותו) וצד ימין (אופציונלי, המשתמש יכול להשבית אותו).

  • דוגמה 1: if [left side] not in [right side].
  • דוגמה 2: if [left side] is greater than 80 (אין צד ימין).

זמן קצוב לתפוגה

  • Default Timeout: 1 minute.
  • זמן קצוב לתפוגה מקסימלי: 3 דקות.

שימוש בפלייבוקים

אופרטורים לוגיים בהתאמה אישית מופיעים בתפריט האופרטורים ב-Playbook Conditions, ב-Previous Action Conditions וב-Entity Selection.

אפשר לבחור אופרטורים לוגיים בהתאמה אישית לצד אופרטורים רגילים (לדוגמה, "שווה ל-" או "מכיל").

טיפול בשגיאות

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

מגבלות

  • אין תמיכה בפונקציות המרה מותאמות אישית ובאופרטורים לוגיים בטריגרים או בווּבקוקים.

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.