عیب‌یابی خطای استقرار خط‌مشی عملیات نقشه ارزش کلیدی

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

InvalidIndex

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا 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> خط مشی عملیات نقشه ارزش کلیدی صفر یا یک عدد منفی باشد، در آن صورت استقرار پراکسی API با شکست مواجه می شود. شاخص از 1 شروع می شود، بنابراین یک شاخص صفر یا منفی به عنوان نامعتبر در نظر گرفته می شود.

به عنوان مثال، اگر index مشخص شده در عنصر <Get> یک خط مشی عملیات نقشه ارزش کلیدی 0 باشد، در آن صورت استقرار پراکسی API با شکست مواجه می شود.

تشخیص

  1. خط مشی عملیات نقشه ارزش کلیدی را که در آن خطا رخ داده و شاخص نامعتبر است، شناسایی کنید. می توانید این اطلاعات را از پیام خطا پیدا کنید. به عنوان مثال، در خطای زیر، نام خط مشی GetKVM و شاخص نامعتبر 0 است:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM .

  2. بررسی کنید که مقدار شاخص مشخص شده در عنصر <Get> خط مشی عملیات نقشه ارزش کلیدی ناموفق با مقدار مشخص شده در پیام خطا مطابقت دارد (مرحله شماره 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. اگر شاخص مشخص شده صفر یا عدد صحیح منفی باشد، دلیل این خطا است.

    در مثال خط مشی عملیات نقشه ارزش کلیدی که در بالا نشان داده شده است، مقدار شاخص 0 است که نامعتبر است. بنابراین، استقرار پروکسی API با خطا انجام می شود:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

قطعنامه

اطمینان حاصل کنید که ویژگی شاخص مشخص شده در عنصر <Get> خط مشی عملیات نقشه ارزش کلیدی معتبر است (عدد صحیح غیرصفر یا منفی).

برای تصحیح مثال خط مشی عملیات نقشه ارزش کلیدی که در بالا نشان داده شده است، می توانید شاخص را به 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>

KeyIs Missing

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا 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> عنصر <InitialEntries> خط مشی Key Value Map Operations وجود نداشته باشد.

تشخیص

  1. خط مشی عملیات نقشه ارزش کلیدی را که در آن خطا رخ داده است، شناسایی کنید. می توانید این اطلاعات را از پیام خطا پیدا کنید. به عنوان مثال، در خطای زیر نام سیاست عملیات نقشه ارزش کلیدی GetKVM است.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. در خط مشی عملیات نقشه ارزش کلیدی ناموفق، بررسی کنید که آیا عنصر <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> و به دنبال آن عنصر <Parameter> هستند.

برای تصحیح مثال Key Value Map Operations Policy نشان داده شده در بالا، افزودن عنصر <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>
    ...

ValueIs Missing

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا 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. خط مشی عملیات نقشه ارزش کلیدی را که در آن خطا رخ داده است، شناسایی کنید. می توانید این اطلاعات را از پیام خطا پیدا کنید. به عنوان مثال، در خطای زیر نام سیاست عملیات نقشه ارزش کلیدی GetKVM است.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. در خط مشی عملیات نقشه ارزش کلیدی ناموفق، بررسی کنید که آیا عنصر <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> در خط مشی عملیات نقشه ارزش کلیدی دارای عنصر <Value> هستند.

برای اصلاح مثال Key Value Map Operations Policy نشان داده شده در بالا، افزودن عنصر <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>
    ...