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