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

Thông báo lỗi sau 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:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Ví dụ về thông báo lỗi

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

Ví dụ về ảnh chụp màn hình báo lỗi

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 Thao tác ánh xạ giá trị khoá bằng 0 hoặc là số âm, thì việc triển khai proxy API không thành công. Chỉ mục này bắt đầu từ 1, nên chỉ mục có số nguyên âm hoặc 0 đượ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ì việc triển khai proxy API sẽ không thành công.

Chẩn đoán

  1. Xác định chính sách Hoạt động bản đồ giá trị khoá có 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 Thao tác bản đồ giá trị khoá bị lỗi 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 giá trị 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ố 0 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 hoạt động bản đồ giá trị khoá nêu trên, giá trị của chỉ mục là 0 và giá trị này không hợp lệ. Do đó, việc triển khai Proxy API không thành công kèm theo lỗi:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Độ phân giải

Đảm bảo rằng 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 âm).

Để sửa ví dụ về Chính sách Hoạt động bản đồ giá trị khoá nêu 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

Thông báo lỗi sau 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:

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

Ví dụ về thông báo lỗi

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

Ví dụ về ảnh chụp màn hình báo lỗi

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 <Parameter> thiếu phần tử trong phần tử <Key> bên dưới <Entry> của <InitialEntries> của Chính sách vận hành 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á có 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 bản đồ 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 Thao tác bản đồ giá trị khoá bị lỗi, hãy kiểm tra xem có <Entry> nào không phần tử bị thiếu phần tử <Key> hoặc <Parameter> bên dưới <InitialEntries>.

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

Độ phân giải

Đảm bảo rằng tất 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 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

Thông báo lỗi sau 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:

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

Ví dụ về thông báo lỗi

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

Ví dụ về ảnh chụp màn hình báo lỗi

Nguyên nhân

Lỗi này xảy ra nếu phần tử <Value> bị thiếu bên dưới 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á có 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 bản đồ 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 Thao tác ánh xạ giá trị khoá bị lỗi, 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à ví dụ về chính sách 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ả 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 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>
    ...