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

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

InvalidIndex

הודעת השגיאה

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

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

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

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

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

שגיאה בשמירת הגרסה 2.

מטרה

אם המאפיין index שצוין ברכיב <Get> של מדיניות Key Value Map Operations (פעולות על מפת מפתח/ערך) הוא אפס או מספר שלילי, ה-Deployment (פריסה) של ה-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 דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:

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

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

שגיאה בשמירת הגרסה 3.

מטרה

השגיאה הזו מתרחשת אם הרכיב <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 דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:

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

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

שגיאה בשמירת הגרסה 3.

מטרה

השגיאה הזו מתרחשת אם חסר הרכיב <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>
    ...