Risoluzione dei problemi di deployment dei criteri delle operazioni di mappatura di chiavi e valori

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

InvalidIndex

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Messaggio di errore di esempio

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 di operazioni di mappa di valori chiave è pari a zero o a un numero negativo, il deployment del proxy API non va a buon fine. Poiché l'indice inizia da 1, un indice pari a zero o un numero intero negativo è considerato non valido.

Ad esempio, se il valore index specificato è 0 nell'elemento <Get> di un criterio di operazioni di mappa di valori chiave, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il criterio Key Value Map Operations in cui si è verificato l'errore e l'indice non valido. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, 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 delle operazioni sulla mappa dei valori chiave non riuscito corrisponda al valore identificato nel messaggio di errore (passaggio 1 sopra). Ad esempio, il seguente criterio specifica il valore dell'indice come 0, che corrisponde a quello indicato nel 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 è zero o un numero intero negativo, è la causa dell'errore.

    Nel criterio di esempio Key Value Map Operations riportato sopra, il valore dell'indice è 0 e non è valido. Di conseguenza, il deployment del proxy API non va a buon fine con l'errore:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Risoluzione

Assicurati che l'attributo di indice specificato nell'elemento <Get> del criterio per le operazioni sulla mappa dei valori chiave sia valido (un numero intero diverso da zero o negativo).

Per correggere l'esempio di criterio delle operazioni della 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 l'interfaccia utente di Apigee non va a buon fine con 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.

Messaggio di errore di esempio

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

Screenshot di esempio di errore

Errore durante il salvataggio della revisione 3.

Causa

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

Diagnosi

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

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. Nel criterio Key-Value Map Operations non riuscito, controlla se sono presenti <Entry> in cui manca un elemento <Key> o <Parameter> sotto <InitialEntries>.

    Di seguito è riportato un esempio di criterio Key-Value Map Operations in cui manca il campo <Parameter> all'interno di <Key> elemento:

    <?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 l'esempio di criterio delle operazioni della 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 l'interfaccia utente di Apigee non va a buon fine con 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.

Messaggio di errore di esempio

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

Screenshot di esempio di errore

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 di valori chiave.

Diagnosi

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

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. Nel criterio non riuscito per le operazioni sulla mappa chiave-valore, controlla se è presente un elemento <Entry> con un elemento <Value> mancante sotto <InitialEntries>.

    Di seguito è riportato un esempio di criterio Key-Value Map Operations 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 Operazioni mappa delle chiavi e dei valori abbiano un elemento <Value>.

Per correggere il criterio di operazioni di mappatura delle chiavi di valore di esempio mostrato sopra, aggiungi un elemento <Value> per risolvere 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>
    ...