Risoluzione degli errori di deployment dei criteri delle operazioni della mappa chiave-valore

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.

InvalidIndex

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI di Apigee non va a buon fine e genera questo messaggio di errore:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Esempio di messaggio di errore

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

Screenshot di errore di esempio

Errore durante il salvataggio della revisione 2.

Causa

Se l'attributo index specificato nell'elemento <Get> di un criterio Operazioni mappa chiave-valore è pari a zero o a un numero negativo, il deployment del proxy API ha esito negativo. L'indice inizia da 1, quindi un indice di zero o un numero intero negativo è considerato non valido.

Ad esempio, se il valore index specificato è 0 nell'elemento <Get> di un criterio Key Value Map Operations, il deployment del proxy API non andrà a buon fine.

Diagnosi

  1. Identifica la norma relativa alle operazioni della mappa chiave-valore in cui si è verificato l'errore e all'indice non valido. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore, il nome del criterio è GetKVM e l'indice non valido è 0:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. Verifica che il valore dell'indice specificato nell'elemento <Get> del criterio relativo alle operazioni di mappatura delle coppie chiave-valore non riuscito corrisponda al valore identificato nel messaggio di errore (passaggio 1 riportato sopra). Ad esempio, il seguente criterio specifica il valore dell'indice come 0, che corrisponde al contenuto del messaggio di errore:

    <?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. Se l'indice specificato è pari a zero o a un numero intero negativo, allora è questa la causa dell'errore.

    Nell'esempio di criterio relativo alle operazioni sulla mappa chiave-valore mostrato sopra, il valore dell'indice è 0, che non è valido. Pertanto, il deployment del proxy API non riesce e restituisce l'errore:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Risoluzione

Assicurati che l'attributo di indice specificato nell'elemento <Get> del criterio Operazioni mappa chiave-valore sia valido (numero intero diverso da zero o negativo).

Per correggere il criterio di esempio relativo alle operazioni sulla mappa chiave-valore mostrato sopra, puoi modificare l'indice in 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

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI di Apigee non va a buon fine e genera questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di errore di esempio

Errore durante il salvataggio della revisione 3.

Causa

Questo errore si verifica se l'elemento <Key> è completamente mancante o se manca l'elemento <Parameter> all'interno dell'elemento <Key> sotto <Entry> dell'elemento <InitialEntries> del criterio Operazioni della mappa chiave-valore.

Diagnosi

  1. Identifica la norma relativa alle operazioni della mappa chiave-valore in cui si è verificato l'errore. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio Operazioni mappa chiave-valore è GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. Nel criterio Operazioni mappa chiave-valore che non è stato superato, controlla se esistono elementi <Entry> con un elemento <Key> o <Parameter> mancante sotto <InitialEntries>.

    Di seguito è riportato un esempio di criterio relativo alle operazioni della mappa chiave-valore in cui manca l'elemento <Parameter> all'interno dell'elemento <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>
    

    In questo caso, il problema è causato dal primo elemento.

Risoluzione

Assicurati che tutti gli elementi <Entry> sotto l'elemento <InitialEntries> nel criterio Operazioni mappa chiave-valore abbiano un elemento <Key> seguito da un elemento <Parameter>.

Per correggere il criterio di esempio relativo alle operazioni sulla mappa chiave-valore mostrato sopra, l'aggiunta di un elemento <Parameter> risolve il problema:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o la UI di Apigee non va a buon fine e genera questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di errore di esempio

Errore durante il salvataggio della revisione 3.

Causa

Questo errore si verifica se l'elemento <Value> non è presente sotto l'elemento <Entry> dell'elemento <InitialEntries> del criterio Operazioni mappa chiave-valore.

Diagnosi

  1. Identifica la norma relativa alle operazioni della mappa chiave-valore in cui si è verificato l'errore. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio Operazioni mappa chiave-valore è GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. Nel criterio relativo alle operazioni sulla mappa chiave-valore che non è stato possibile verificare se sotto <InitialEntries> manca un elemento <Entry> con un elemento <Value> mancante.

    Di seguito è riportato un esempio di criterio relativo alle operazioni sulla mappa chiave-valore in cui manca l'elemento <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>
        ...
    
    

Risoluzione

Assicurati che tutti gli elementi <Entry> sotto l'elemento <InitialEntries> nel criterio delle operazioni della mappa chiave-valore abbiano un elemento <Value>.

Per correggere il criterio di esempio relativo alle operazioni sulla mappa chiave-valore mostrato sopra, l'aggiunta di un elemento <Value> risolve il problema:

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