המדיניות ReadPropertySet קוראת את קבוצות המאפיינים ומאכלסת את משתנה הזרימה בתוצאות.
המדיניות הזו היא מדיניות רגילה ואפשר לפרוס אותה בכל סוג של סביבה. מידע על סוגי המדיניות והזמינות שלהם בכל סוג סביבה זמין במאמר סוגי מדיניות.
רכיב <ReadPropertySet>
הגדרת מדיניות ReadPropertySet.
| ערך ברירת המחדל | מידע נוסף מופיע בכרטיסייה מדיניות ברירת המחדל שבהמשך |
| חובה? | חובה |
| סוג | אובייקט מורכב |
| רכיב אב | לא רלוונטי |
| רכיבי צאצא |
<Read> |
רכיב <ReadPropertySet> משתמש בתחביר הבא:
תחביר
רכיב <ReadPropertySet> משתמש בתחביר הבא:
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read> ... <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ReadPropertySet>
מדיניות ברירת המחדל
בדוגמה הבאה מוצגות הגדרות ברירת המחדל כשמוסיפים מדיניות ReadPropertySet לזרימה בממשק המשתמש של Apigee:
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ReadPropertySet>
כשמוסיפים מדיניות חדשה של ReadPropertySet בממשק המשתמש של Apigee, התבנית מכילה stub לכל הפעולות האפשריות. בהמשך מפורט מידע על האלמנטים הנדרשים.
לרכיב הזה יש את המאפיינים הבאים שמשותפים לכל המדיניות:
| מאפיין | ברירת מחדל | חובה? | תיאור |
|---|---|---|---|
name |
לא רלוונטי | חובה |
השם הפנימי של המדיניות. הערך של מאפיין אפשר להשתמש ברכיב |
continueOnError |
FALSE | אופציונלי | מגדירים את הערך false כדי להחזיר שגיאה אם המדיניות נכשלת. זו התנהגות צפויה ברוב המקרים. הגדרה ל-true מאפשרת להמשיך את הביצוע של התהליך גם אחרי שמדיניות נכשלת. מאמרים קשורים:
|
enabled |
TRUE | אופציונלי | מגדירים את הערך true כדי לאכוף את המדיניות, או את הערך false כדי להשבית את המדיניות. המדיניות לא נאכפת גם אם היא עדיין משויכת לזרימה. |
async |
FALSE | הוצא משימוש | המאפיין הזה הוצא משימוש. |
בטבלה הבאה מפורטים רכיבי המשנה של <ReadPropertySet>:
| רכיב צאצא | חובה? | תיאור |
|---|---|---|
<Read> |
חובה | קריאה ופתרון של משתנה של קבוצת מאפיינים והגדרתו למשתנה ספציפי של זרימת נתונים. |
<IgnoreUnresolvedVariables> |
אופציונלי | ההגדרה הזו קובעת אם העיבוד ייפסק כשקבוצת מאפיינים לא נפתרת. |
דוגמה
בקטע הזה מופיעה דוגמה לשימוש ב-<ReadPropertySet>.
דוגמה
בדוגמה הזו נעשה שימוש ב-<ReadPropertySet> כדי לקבל את propertyset.environment.name.request.headers.api-version ולהקצות אותו ל-target_url. אם לא מתקבל ערך של המאפיין,
המערכת משתמשת בערך https://httpbin.org/get.
<ReadPropertySet name="read-property-set">
<Read>
<Name ref="set-ref">environment.name</Name>
<Key ref="key-ref">request.headers.api-version</Key>
<AssignTo>target_url</AssignTo>
<DefaultValue>https://httpbin.org/get</DefaultValue>
</Read>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
</ReadPropertySet>הפניה לרכיב צאצא
בקטע הזה מתוארים רכיבי הבן של <ReadPropertySet>.
<Read>
הפעולה פותרת משתנה של קבוצת מאפיינים ומגדירה את התוצאה במשתנה של זרימת נתונים.
רכיב <Read> מציין את משתנה קבוצת המאפיינים שיש לפתור ואת משתנה הזרימה שאליו צריך להגדיר את הערך הזה. הוא כולל גם ערך ברירת מחדל אופציונלי, שמשמש במקרה של
הגדרת מאפיין לא פתורה. אפשר לכלול כמה רכיבי <Read> במדיניות <ReadPropertySet> אחת.
| ערך ברירת המחדל | לא רלוונטי |
| חובה? | אופציונלי |
| סוג | סוג מורכב |
| רכיב אב |
<ReadPropertySet>
|
| רכיבי צאצא |
<Name><Key><AssignTo><DefaultValue> |
רכיב <Read> משתמש בתחביר הבא:
תחביר
<Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read>
דוגמה
בדוגמה הזו נעשה שימוש ב-<ReadPropertySet> כדי לקבל את propertyset.environment.name.request.headers.api-version ולהקצות אותו ל-target_url. אם לא מתקבל ערך של המאפיין,
המערכת משתמשת בערך https://httpbin.org/get.
<ReadPropertySet name="read-property-set">
<Read>
<Name ref="environment.name">my-property-set-name</Name>
<Key ref="request.headers.api-version">my-property-set-key</Key>
<AssignTo>target_url</AssignTo>
<DefaultValue>https://httpbin.org/get</DefaultValue>
</Read>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
</ReadPropertySet>בטבלה הבאה מופיע תיאור כללי של רכיבי המשנה של <Read>.
| רכיב צאצא | חובה? | תיאור |
|---|---|---|
<Name> |
חובה | מחרוזת המאפיין שמוגדר לקריאה. מציינים את הערך ref, את הערך או את שניהם.
Apigee קודם מנסה לפתור את |
<Key> |
חובה | מחרוזת המפתח של קבוצת המאפיינים שהוגדרה, שמשמשת לפתרון המשתנה. מציינים את הערך ref, את הערך או את שניהם.
Apigee קודם מנסה לפתור את |
<AssignTo> |
חובה | מחרוזת מציינת את משתנה הזרימה שאליו יוקצה המשתנה שנפתר. |
<DefaultValue> |
אופציונלי | מחרוזת מציינת ערך ברירת מחדל לשימוש במקרים שבהם אי אפשר לפתור את המשתנה. |
<IgnoreUnresolvedVariables>
קובע אם העיבוד יופסק אם לא נמצא פתרון למערכת מאפיינים. הערך שמוגדר הוא
true כדי להתעלם ממשתנים שלא נמצא להם פתרון ולהמשיך בעיבוד.
המאפיין IgnoreUnresolvedVariables לא רלוונטי כשמספקים את <DefaultValue>.
| ערך ברירת המחדל | לא נכון |
| חובה? | אופציונלי |
| סוג | בוליאני |
| רכיב אב |
<ReadPropertySet>
|
| רכיבי צאצא | ללא |
הפניה לשגיאה
בקטע הזה מתוארים קודי השגיאות והודעות השגיאה שמוחזרים, ומשתני השגיאה שמוגדרים על ידי Apigee באופן ספציפי למדיניות <ReadPropertySet>. חשוב להכיר את המידע הזה אם מפתחים כללי שגיאה לטיפול בשגיאות. למידע נוסף, אפשר לעיין במאמרים מה שחשוב לדעת על שגיאות במדיניות וטיפול בשגיאות.
שגיאות זמן ריצה
השגיאות האלה יכולות להתרחש כשהמדיניות מופעלת.
| קוד תקלה | סטטוס HTTP | מטרה |
|---|---|---|
steps.readpropertyset.UnresolvedVariable |
500 |
השגיאה הזו מתרחשת אם משתנה שצוין במדיניות ReadPropertySet הוא אחד מהבאים:
אם |
שגיאות בהטמעה
השגיאות האלה יכולות להתרחש כשפורסים שרת proxy שמכיל את המדיניות הזו.
| שם השגיאה | מטרה |
|---|---|
steps.readpropertyset.EmptyReads |
במדיניות אין רכיבי צאצא מסוג <Read>. |
steps.readpropertyset.FieldUnset |
הקוד הזה מוחזר אם אחד מהתנאים הבאים מתקיים:
|
משתני תקלות
המשתנים האלה מוגדרים כשהמדיניות הזו מפעילה שגיאה בזמן הריצה. מידע נוסף על שגיאות שקשורות למדיניות
| משתנים | כאשר: | דוגמה |
|---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME הוא שם התקלה, כפי שמופיע בטבלה Runtime errors שלמעלה. שם התקלה הוא החלק האחרון של קוד התקלה. | fault.name Matches "UnresolvedVariable" |
readpropertyset.POLICY_NAME.failed |
POLICY_NAME הוא השם שהמשתמש הגדיר למדיניות שגרמה לשגיאה. | readpropertyset.RPS-SetResponse.failed = true |
דוגמה לתגובת שגיאה
{ "fault": { "faultstring": "ReadPropertySet[RPS-SetResponse]: unable to resolve variable [variable_name]", "detail": { "errorcode": "steps.readpropertyset.UnresolvedVariable" } } }
דוגמה לכלל שגיאה
<FaultRule name="ReadPropertySet Faults">
<Step>
<Name>RPS-CustomSetVariableErrorResponse</Name>
<Condition>(fault.name = "SetVariableFailed")</Condition>
</Step>
<Condition>(readpropertyset.failed = true)</Condition>
</FaultRule>
סכימות
כל סוג מדיניות מוגדר על ידי סכימת XML (.xsd). סכימות מדיניות זמינות ב-GitHub.