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

נתמך ב:

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

חבילות הרחבה

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

שיטות מומלצות לחבילות של תוספים

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

צור חבילת הרחבות

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

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

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

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

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

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

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

ייבוא וייצוא

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

ממירים בהתאמה אישית

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

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

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

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

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

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

  • זמן קצוב ברירת מחדל: דקה אחת.
  • Maximum Timeout: 3 minutes.

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

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

תמיכה בכל משתני המיקום (JSON ולא JSON)

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

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

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

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

אם פונקציית טרנספורמציה מותאמת אישית נתקלת בשגיאה במהלך הביצוע, פעולת מדריך המשתמשת בשנאי זה נכשלת. הודעת השגיאה הספציפית [0x0A]שנוצרה על ידי סקריפט 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). זה מאפשר לך להזין ערכי בדיקה עבור הארגומנטים ולאמת שהפונקציה מחזירה את התוצאה הבוליאנית הנכונה (אמת או שקר) בהתבסס על התנאים שהגדרת.

פרמטרים

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

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

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

  • זמן קצוב ברירת מחדל: דקה אחת.
  • Maximum Timeout: 3 minutes.

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

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

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

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

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

מגבלות

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

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