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

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

ایندکس نامعتبر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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. خط‌مشی عملیات نقشه ارزش کلیدی (Key Value Map Operations) که خطا در آن رخ داده و شاخص نامعتبر را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی 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>

کلید مفقود است

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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> از سیاست عملیات نقشه ارزش کلیدی وجود نداشته باشد.

تشخیص

  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. در سیاست ناموفق عملیات نقشه ارزش کلیدی، بررسی کنید که آیا عنصر <Entry> وجود دارد که عنصر <Key> یا <Parameter> آن در زیر <InitialEntries> گم شده باشد یا خیر.

    در اینجا یک نمونه از سیاست عملیات نقشه کلید مقدار (Key Value Map Operations) آورده شده است که عنصر <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> باشند.

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

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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> از سیاست عملیات نقشه کلید مقدار وجود نداشته باشد.

تشخیص

  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. در سیاست ناموفق عملیات نقشه کلید مقدار، بررسی کنید که آیا عنصر <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> باشند.

برای اصلاح مثال سیاست عملیات نقشه کلید مقدار نشان داده شده در بالا، اضافه کردن یک عنصر <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>
    ...