Khắc phục sự cố khi triển khai chính sách Hoạt động bản đồ giá trị khoá

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

InvalidIndex

Thông báo lỗi

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge với thông báo lỗi sau:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Thông báo lỗi mẫu

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

Ảnh chụp màn hình lỗi ví dụ

Nguyên nhân

Nếu thuộc tính index được chỉ định trong phần tử <Get> của chính sách Hoạt động bản đồ giá trị khoá là 0 hoặc là số âm, thì sẽ không triển khai proxy API được. Chỉ mục bắt đầu từ 1, vì vậy chỉ mục có số nguyên hoặc số nguyên âm sẽ được coi là không hợp lệ.

Ví dụ: nếu index được chỉ định là 0 trong phần tử <Get> của chính sách Hoạt động bản đồ giá trị khoá, thì sẽ không triển khai được proxy API.

Chẩn đoán

  1. Xác định chính sách Hoạt động bản đồ giá trị khoá nơi xảy ra lỗi và chỉ mục không hợp lệ. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là GetKVM và chỉ mục không hợp lệ là 0:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. Xác minh rằng giá trị của chỉ mục được chỉ định trong phần tử <Get> của chính sách Hoạt động bản đồ giá trị khoá không thành công khớp với giá trị được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: Chính sách sau đây chỉ định giá trị của chỉ mục là 0, khớp với nội dung trong thông báo lỗi:

    <?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. Nếu chỉ mục được chỉ định là số nguyên không hoặc số nguyên âm, thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về Chính sách về hoạt động bản đồ giá trị khoá trình bày ở trên, giá trị của chỉ mục là 0 và giá trị này không hợp lệ. Do đó, quá trình triển khai Proxy API sẽ không thành công kèm theo lỗi:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Độ phân giải

Đảm bảo thuộc tính chỉ mục được chỉ định trong phần tử <Get> của chính sách Hoạt động bản đồ giá trị khoá là hợp lệ (số nguyên khác 0 hoặc số nguyên âm).

Để sửa ví dụ về Hoạt động ánh xạ khoá giá trị khoá trình bày ở trên, bạn có thể sửa đổi chỉ mục thành 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

Thông báo lỗi

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge với thông báo lỗi sau:

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

Thông báo lỗi mẫu

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

Ảnh chụp màn hình lỗi ví dụ

Nguyên nhân

Lỗi này xảy ra nếu phần tử <Key> bị thiếu hoàn toàn hoặc phần tử <Parameter> bị thiếu trong phần tử <Key> bên dưới phần tử <Entry> của <InitialEntries> của Chính sách về hoạt động của bản đồ giá trị khoá.

Chẩn đoán

  1. Xác định chính sách Hoạt động bản đồ giá trị khoá nơi xảy ra lỗi. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên của chính sách Hoạt động ánh xạ giá trị khoá là GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. Trong chính sách Hoạt động bản đồ giá trị khoá không thành công, hãy kiểm tra xem có phần tử <Entry> nào bị thiếu phần tử <Key> hoặc <Parameter> bên dưới <InitialEntries> hay không.

    Dưới đây là một mẫu chính sách về Hoạt động bản đồ giá trị khoá bị thiếu phần tử <Parameter> trong phần tử <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>
    

    Trong trường hợp này, phần tử đầu tiên gây ra vấn đề.

Độ phân giải

Đảm bảo rằng tất cả các phần tử <Entry> bên dưới phần tử <InitialEntries> trong chính sách Hoạt động bản đồ giá trị khoá đều có phần tử <Key> theo sau là phần tử <Parameter>.

Để sửa ví dụ về Chính sách hoạt động của bản đồ giá trị khoá nêu trên, việc thêm phần tử <Parameter> sẽ giải quyết được vấn đề này:

<?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

Thông báo lỗi

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge với thông báo lỗi sau:

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

Thông báo lỗi mẫu

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

Ảnh chụp màn hình lỗi ví dụ

Nguyên nhân

Lỗi này xảy ra nếu phần tử <Value> bị thiếu trong phần tử <Entry> của phần tử <InitialEntries> của chính sách Hoạt động bản đồ giá trị khoá.

Chẩn đoán

  1. Xác định chính sách Hoạt động bản đồ giá trị khoá nơi xảy ra lỗi. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên của chính sách Hoạt động ánh xạ giá trị khoá là GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. Trong chính sách về Hoạt động của bản đồ giá trị khoá không thành công, hãy kiểm tra xem có phần tử <Entry> nào bị thiếu phần tử <Value> bên dưới <InitialEntries> hay không.

    Dưới đây là một mẫu chính sách về Hoạt động bản đồ giá trị khoá bị thiếu phần tử <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>
        ...
    
    

Độ phân giải

Đảm bảo rằng tất cả các phần tử <Entry> bên dưới phần tử <InitialEntries> trong chính sách Hoạt động bản đồ giá trị khoá đều có phần tử <Value>.

Để sửa ví dụ về Chính sách hoạt động của bản đồ giá trị khoá nêu trên, việc thêm phần tử <Value> sẽ giải quyết được vấn đề này:

<?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>
    ...