פיתוח טרנספורמציות בהתאמה אישית
אתם יכולים ליצור פונקציות המרה מותאמות אישית מבוססות Python ואופרטורים לוגיים ישירות בסביבת הפיתוח המשולבת (IDE) ולהשתמש בהם ב-playbooks שלכם לתרחישי שימוש מורכבים ומגוונים.
חבילות הרחבה
חבילת הרחבות היא סוג שילוב מיוחד שנועד לשמש כקונטיינר לפונקציות טרנספורמציה מותאמות אישית ולאופרטורים לוגיים. בניגוד לשילובים רגילים, חבילות של תוספים לא דורשות הגדרת מופע ואפשר ליצור אותן ישירות מתוך סביבת הפיתוח המשולבת.
שיטות מומלצות לחבילות הרחבות
- איחוד: יוצרים חבילת הרחבות ראשית אחת ומוסיפים לה כמה פונקציות טרנספורמציה או אופרטורים לוגיים.
- הפרדה: יוצרים חבילת הרחבות חדשה כשצריך קבוצה שונה של ספריות Python (תלויות) שעשויות להתנגש עם החבילה הראשית.
יצירת חבילת תוספים
כדי ליצור חבילת נכסי מידע חדשה, פועלים לפי השלבים הבאים:
- עוברים אל תגובה > IDE.
- לוחצים על הוספה יצירת פריט חדש.
- בתפריט הנפתח, בוחרים באפשרות חבילת תוספים.
- מזינים Name (שם) ייחודי לחבילת התוספים.
- לוחצים על Save.
העלאת יחסי תלות
בדומה לשילובים רגילים, חבילות ההרחבות פועלות בסביבה וירטואלית שבה אפשר לנהל ספריות Python.
כדי לנהל את הספריות:
- פותחים את ההגדרות של חבילת התוספים בסביבת הפיתוח המשולבת.
- מוסיפים את ספריות Python הנדרשות מ-PyPi או מעלים אותן מהמחשב.
התלויות האלה זמינות לכל רכיבי ה-Transformer והאופרטורים הלוגיים שכלולים בחבילת התוספים הספציפית הזו.
ייבוא וייצוא
אתם יכולים לייבא ולייצא חבילות של תוספים באופן ידני ישירות בממשק של סביבת הפיתוח המשולבת (IDE).
ממירים בהתאמה אישית
Custom Transformers הן פונקציות Python בהגדרת המשתמש שמרחיבות את הפונקציות המובנות ב-Expression Builder. אפשר ליצור אותן ישירות בסביבת הפיתוח המשולבת כדי לחלץ נתונים ולבצע בהם מניפולציות, ואפשר להשתמש בהן לצד פונקציות מובנות קיימות.
יצירת טרנספורמציה בהתאמה אישית
כדי להגדיר טרנספורמציה חדשה בהתאמה אישית, פועלים לפי השלבים הבאים:
- ב-IDE, מאתרים את חבילת התוספים הרצויה.
- בוחרים את חבילת התוספים שאליה רוצים להוסיף פריט חדש.
- בוחרים באפשרות פונקציית טרנספורמציה בהתאמה אישית.
- נותנים לו שם.
- אופציונלי: מוסיפים תיאור. ההסבר הזה מוצג כשמעבירים את העכבר מעל הטרנספורמציה המותאמת אישית בכלי ליצירת ביטויים.
- מגדירים את הלוגיקה של הסקריפט באמצעות Python. אפשר להשתמש בתבנית ברירת המחדל שמופיעה כאן כנקודת התחלה.
- הסקריפט חייב לכלול פונקציה בשם
main, כמו שמוצג בתבנית המוגדרת מראש. - הסקריפט צריך להחזיר תוצאה לכלי ליצירת ביטויים באמצעות הפונקציה
endשל ה-SDK. - הקלט של הטרנספורמציה המותאמת אישית יכול להיות מסוגים שונים
(לדוגמה, מחרוזת או רשימה). חשוב להמיר אותו לסוג הצפוי בפונקציה
main. - אפשר להשתמש רק בחלק מהשיטות של ה-SDK בתוך סביבת הפיתוח המשולבת (IDE) עבור רכיבי Transformer:
-
transformer.extract_param("ParamName"): כדי לאחזר ערכי קלט. -
transformer.LOGGER: כדי לכתוב יומנים לניפוי באגים. transformer.end(result): כדי להחזיר את הערך שעבר טרנספורמציה.
-
- הסקריפט חייב לכלול פונקציה בשם
- יוצרים פרמטרים:
- כל פונקציית טרנספורמציה מותאמת אישית כוללת פרמטר ברירת מחדל Input (קלט). הפרמטר הזה מייצג את נתוני הקלט, שהם ה-placeholder שהפונקציה חלה עליו. אי אפשר למחוק את הפרמטר הזה.
- בנוסף, אתם יכולים להוסיף פרמטרים אופציונליים לשימוש בתוך הפונקציה.
- תיעוד (אופציונלי): מגדירים תיעוד במוצר עבור הכלי ליצירת ביטויים:
- קלט צפוי: תיאור של סוג הנתונים שהפונקציה אמורה לקבל עבור הטרנספורמציה הזו (לדוגמה, 'מחרוזת' או 'רשימת מחרוזות').
- פלט צפוי: תיאור של סוג הנתונים שהפונקציה צפויה להחזיר עבור הטרנספורמציה הזו (לדוגמה, 'boolean').
- דוגמה לשימוש: תן דוגמה להפעלת הפונקציה (לדוגמה,
if_empty("new_value")).
אתם יכולים לבדוק את הלוגיקה של פונקציית ההמרה המותאמת אישית ישירות בסביבת הפיתוח המשולבת לפני שמשתמשים בה ב-Playbook. כך תוכלו לוודא שסקריפט Python מטפל בסוגים שונים של קלט ופרמטרים בצורה נכונה ומחזיר את התוצאות הצפויות.
זמן קצוב לתפוגה
- Default Timeout: דקה אחת.
- Maximum Timeout: 3 minutes.
שימוש בטרנספורמציות בהתאמה אישית בכלי ליצירת ביטויים
אחרי השמירה, טרנספורמציות בהתאמה אישית מופיעות ברשימת הפונקציות של הכלי ליצירת ביטויים לצד פונקציות מובנות. הם מזוהים לפי הפורמט:
ExtensionPackName.TransformerName. כשמעבירים את העכבר מעל הפונקציה, מוצגת התיעוד שנוצר מתיאורי הפרמטרים.
תמיכה בכל משתני המיקום (JSON ולא JSON)
הכלי ליצירת ביטויים תומך בכל מציין המיקום שמוצג בכלי לעיצוב תוכנית הפעולה, כולל תוצאות שאינן בפורמט JSON.
לפלייסהולדרים שאינם JSON:
- אתם יכולים להזין נתוני דוגמה באופן ידני בכלי ליצירת ביטויים כדי לבדוק את הלוגיקה מול סוגים שונים של קלט: מחרוזת, רשימה (ערכים מופרדים בפסיקים) ו-JSON.
- בדיקה עם סוג קלט לא מבטיחה שה-placeholder יחזיר את הסוג הספציפי הזה בזמן הריצה.
- רוב משתני המיקום מומרים למחרוזות, למעט סוגים ספציפיים שמומרים למחרוזת או לרשימה בהתאם לכמות שלהם (לדוגמה,
entity.identifier). במקרים כאלה, מומלץ להתייחס תמיד לקלט כרשימה.
טיפול בשגיאות
אם פונקציית טרנספורמציה מותאמת אישית נתקלת בשגיאה במהלך ההפעלה, הפעולה ב-Playbook שמשתמשת בטרנספורמציה הזו נכשלת. הודעת השגיאה הספציפית [0x0A]שנוצרה על ידי סקריפט Python מוצגת במסך בתצוגת ההרצה של playbook, ומאפשרת לכם לפתור בעיות בלוגיקה ישירות.
אופרטורים לוגיים בהתאמה אישית
אופרטורים לוגיים בהתאמה אישית מאפשרים לכם להגדיר לוגיקה בוליאנית משלכם להשוואת ערכים.
יצירת אופרטור לוגי בהתאמה אישית
כדי להגדיר אופרטור לוגי חדש, פועלים לפי השלבים הבאים:
- בסביבת הפיתוח המשולבת, מאתרים את חבילת התוספים הרצויה.
- בוחרים באפשרות אופרטור לוגי מותאם אישית.
- נותנים לו שם.
- אופציונלי: מוסיפים תיאור לתפריט של האופרטורים הלוגיים ב-Playbook Designer.
- מגדירים את הלוגיקה של הסקריפט באמצעות 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: דקה אחת.
- Maximum Timeout: 3 minutes.
שימוש בפלייבוקים
אופרטורים לוגיים בהתאמה אישית מופיעים בתפריט האופרטורים בקטע תנאים ב-Playbook, תנאים של פעולה קודמת ובחירת ישות.
אפשר לבחור אופרטורים לוגיים מותאמים אישית לצד אופרטורים רגילים (לדוגמה, Equals או Contains).
טיפול בשגיאות
אם פונקציית אופרטור לוגי מותאם אישית נתקלת בשגיאה במהלך ההפעלה, התנאי או השלב ב-Playbook שמשתמשים באופרטור הזה ייכשלו. הודעת השגיאה שמוחזרת על ידי סקריפט Python מוצגת בתצוגת ההרצה של Playbook כדי לעזור בפתרון בעיות.
מגבלות
- אין תמיכה בפונקציות המרה מותאמות אישית ובאופרטורים לוגיים בטריגרים או בווּבּהוּקים.
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.