פתרון בעיות שקשורות לפריסת המדיניות בנושא פעולות של מיפוי בין מפתח לערך

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

InvalidIndex

הודעת השגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או דרך Edge management API נכשלת עם הודעת השגיאה הבאה:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

הודעת שגיאה לדוגמה

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

דוגמה לצילום מסך של שגיאה

סיבה

אם המאפיין index שצוין ברכיב <Get> של מדיניות Key Value Map Operations הוא אפס או מספר שלילי, פריסת ה-proxy ל-API תיכשל. האינדקס מתחיל מ-1, ולכן אינדקס של אפס או מספר שלם שלילי נחשב לא תקין.

לדוגמה, אם הערך index שצוין הוא 0 ברכיב <Get> של מדיניות Key Value Map Operations (פעולות במפת מפתח/ערך), פריסת ה-Proxy ל-API תיכשל.

אבחון

  1. מזהים את מדיניות Key Value Map Operations (פעולות במפת ערכי מפתח) שבה אירעה השגיאה ואת האינדקס הלא תקין. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא GetKVM והאינדקס הלא תקין הוא 0:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. מוודאים שהערך של האינדקס שצוין ברכיב <Get> של המדיניות Key Value Map Operations שנכשלה זהה לערך שזוהה בהודעת השגיאה (שלב 1 למעלה). לדוגמה, במדיניות הבאה הערך של האינדקס הוא 0, שזהה לערך שמופיע בהודעת השגיאה:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
        <DisplayName>GetKVM</DisplayName>
        <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
        <Scope>environment</Scope>
        <Get assignTo="foo_variable" index="0">
            <Key>
                <Parameter>FooKey_1</Parameter>
            </Key>
        </Get>
    </KeyValueMapOperations>
    
  3. אם האינדקס שצוין הוא אפס או מספר שלם שלילי, זו הסיבה לשגיאה.

    בדוגמה למדיניות Key Value Map Operations שמוצגת למעלה, הערך של האינדקס הוא 0, שהוא לא תקין. לכן, פריסת ה-API Proxy נכשלת עם השגיאה:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

רזולוציה

מוודאים שמאפיין האינדקס שצוין ברכיב <Get> של מדיניות Key Value Map Operations (פעולות מיפוי של זוגות מפתח/ערך) הוא תקין (מספר שלם שאינו אפס או מספר שלילי).

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
    <DisplayName>GetKVM</DisplayName>
    <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
    <Scope>environment</Scope>
    <Get assignTo="foo_variable" index="1">
        <Key>
            <Parameter>FooKey_1</Parameter>
        </Key>
    </Get>
</KeyValueMapOperations>

KeyIsMissing

הודעת השגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או דרך Edge management API נכשלת עם הודעת השגיאה הבאה:

Error Saving Revision revision_number
Error occurred while validation of bean policy_name.xml
Reason: - Non null value expected for element Parameter in Entry.

הודעת שגיאה לדוגמה

Error Saving Revision 3
Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry

דוגמה לצילום מסך של שגיאה

סיבה

השגיאה הזו מתרחשת אם הרכיב <Key> חסר לגמרי או אם הרכיב <Parameter> חסר בתוך הרכיב <Key> מתחת לרכיב <Entry> של המדיניות Key Value Map Operations.<InitialEntries>

אבחון

  1. מזהים את מדיניות Key Value Map Operations (פעולות במיפוי של זוגות מפתח/ערך) שבה התרחשה השגיאה. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, השם של מדיניות Key Value Map Operations הוא GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. במדיניות Key Value Map Operations (פעולות מיפוי של זוגות מפתח/ערך) שנכשלה, בודקים אם יש רכיב <Entry> שחסר לו רכיב <Key> או <Parameter> מתחת לרכיב <InitialEntries>.

    זו דוגמה למדיניות של פעולות במיפוי של זוגות מפתח/ערך שחסר בה אלמנט <Parameter> בתוך אלמנט <Key>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="FooKVM">
        <DisplayName>GetKVM</DisplayName>
        <Properties/>
        <ExclusiveCache>false</ExclusiveCache>
        <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
        <InitialEntries>
            <Entry>
                <Key/>
                <Value>v1</Value>
            </Entry>
            <Entry>
                <Key>
                    <Parameter>k2</Parameter>
                </Key>
                <Value>v2</Value>
            </Entry>
        </InitialEntries>
    

    במקרה הזה, הבעיה נגרמת בגלל הרכיב הראשון.

רזולוציה

מוודאים שכל רכיבי <Entry> שמתחת לרכיב <InitialEntries> במדיניות Key Value Map Operations (פעולות במפת ערכי מפתח) כוללים רכיב <Key> ואחריו רכיב <Parameter>.

כדי לתקן את המדיניות לדוגמה בנושא פעולות מיפוי של זוגות מפתח/ערך שמוצגת למעלה, צריך להוסיף רכיב <Parameter> כדי לפתור את הבעיה:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="FooKVM">
    <DisplayName>GetKVM</DisplayName>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
    <InitialEntries>
        <Entry>
            <Key>
                <Parameter>k1</Parameter>
            </Key>
            <Value>v1</Value>
        </Entry>
        <Entry>
            <Key>
                <Parameter>k2</Parameter>
            </Key>
            <Value>v2</Value>
        </Entry>
    </InitialEntries>
    ...

ValueIsMissing

הודעת השגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או דרך Edge management API נכשלת עם הודעת השגיאה הבאה:

Error Saving Revision revision_number
Error occurred while validation of bean policy_name.xml. Reason: - Non null value expected for element Value in Entry.

הודעת שגיאה לדוגמה

Error Saving Revision 3
Error occurred while validation of bean GetKVM.xml.Reason: - Non null value expected for element Value in Entry

דוגמה לצילום מסך של שגיאה

סיבה

השגיאה הזו מתרחשת אם האלמנט <Value> חסר מתחת לאלמנט <Entry> של האלמנט <InitialEntries> במדיניות Key Value Map Operations.

אבחון

  1. מזהים את מדיניות Key Value Map Operations (פעולות מיפוי של זוגות מפתח/ערך) שבה אירעה השגיאה. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, השם של מדיניות Key Value Map Operations הוא GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. במדיניות Key Value Map Operations (פעולות במיפוי של מפתח וערך) שנכשלה, בודקים אם יש רכיב <Entry> שחסר לו רכיב <Value> מתחת לרכיב <InitialEntries>.

    זוהי דוגמה למדיניות של פעולות מיפוי של צמדי מפתח/ערך שחסר בה רכיב <Value>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="testNotEncrypte">
        <DisplayName>GetKVM3</DisplayName>
        <Properties/>
        <ExclusiveCache>false</ExclusiveCache>
        <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
        <InitialEntries>
            <Entry>
                <Key>
                    <Parameter>k1</Parameter>
                </Key>
            </Entry>
            <Entry>
                <Key>
                    <Parameter>k2</Parameter>
                </Key>
                <Value>v2</Value>
            </Entry>
        </InitialEntries>
        ...
    
    

רזולוציה

מוודאים שלכל רכיב <Entry> מתחת לרכיב <InitialEntries> במדיניות Key Value Map Operations יש רכיב <Value>.

כדי לתקן את המדיניות לדוגמה בנושא פעולות מיפוי של זוגות מפתח/ערך שמוצגת למעלה, צריך להוסיף רכיב <Value> כדי לפתור את הבעיה:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="testNotEncrypte">
    <DisplayName>GetKVM3</DisplayName>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
    <InitialEntries>
        <Entry>
            <Key>
                <Parameter>k1</Parameter>
            </Key>
            <Value>v1</Value>
        </Entry>
        <Entry>
            <Key>
                <Parameter>k2</Parameter>
            </Key>
            <Value>v2</Value>
        </Entry>
    </InitialEntries>
    ...