Résoudre les erreurs de déploiement de la règle des opérations de mappage clé-valeur

Vous consultez la documentation d'Apigee X.
Consultez la documentation d'Apigee Edge.

InvalidIndex

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Exemple de message d'erreur

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

Capture d'écran du message d'erreur

Erreur lors de l'enregistrement de la révision 2.

Cause

Si l'attribut index spécifié dans l'élément <Get> de la règle des opérations de mappage clé-valeur est égal à zéro ou à un nombre négatif, le déploiement du proxy d'API échoue. L'index commence à partir de 1. Un index égal à zéro ou à un entier négatif est donc considéré comme non valide.

Par exemple, si l'attribut index est défini sur 0 dans l'élément <Get> d'une règle des opérations de mappage clé-valeur, le déploiement du proxy d'API échoue.

Diagnostic

  1. Identifiez la règle des opérations de mappage clé-valeur dans laquelle l'erreur s'est produite et l'index n'est pas valide. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est GetKVM et l'index non valide est 0 :

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. Vérifiez que la valeur de l'index spécifié dans l'élément <Get> de la règle des opérations de mappage clé-valeur ayant échoué correspond à la valeur identifiée dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante définit la valeur de l'index sur 0, ce qui correspond au contenu du message d'erreur :

    <?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. Si l'index spécifié est égal à zéro ou à un entier négatif, il s'agit de la cause de l'erreur.

    Dans l'exemple de règle des opérations de mappage clé-valeur présenté ci-dessus, la valeur de l'index est 0 et n'est donc pas valide. Par conséquent, le déploiement du proxy d'API échoue avec l'erreur suivante :

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Solution

Assurez-vous que l'attribut d'index spécifié dans l'élément <Get> de la règle des opérations de mappage clé-valeur est valide (entier non nul ou négatif).

Pour corriger l'exemple de règle des opérations de mappage clé-valeur présenté ci-dessus, vous pouvez remplacer la valeur de l'index par 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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Capture d'écran du message d'erreur

Erreur lors de l&#39;enregistrement de la révision 3.

Cause

Cette erreur se produit si l'élément <Key> est complètement manquant ou si l'élément <Parameter> est manquant dans l'élément <Key> sous l'entrée (<Entry>) de l'élément <InitialEntries> dans la règle des opérations de mappage clé-valeur.

Diagnostic

  1. Identifiez la règle des opérations de mappage clé-valeur dans laquelle l'erreur s'est produite. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle des opérations de mappage clé-valeur est GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. Dans la règle des opérations de mappage clé-valeur ayant échoué, vérifiez s'il existe un élément <Entry> comportant un élément <Key> ou <Parameter> manquant sous l'entrée <InitialEntries>.

    Voici un exemple de règle des opérations de mappage clé-valeur comportant un élément <Parameter> manquant dans un élément <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>
    

    Dans ce cas, le premier élément est à l'origine du problème.

Solution

Vérifiez que tous les éléments <Entry> spécifiés sous l'élément <InitialEntries> de la règle des opérations de mappage clé-valeur possèdent un élément <Key> suivi d'un élément <Parameter>.

Pour corriger l'exemple de règle des opérations de mappage clé-valeur présenté ci-dessus, vous pouvez ajouter un élément <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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Capture d'écran du message d'erreur

Erreur lors de l&#39;enregistrement de la révision 3.

Cause

Cette erreur se produit si l'élément <Value> est manquant sous l'élément <Entry> dans l'élément <InitialEntries> de la règle des opérations de mappage clé-valeur.

Diagnostic

  1. Identifiez la règle des opérations de mappage clé-valeur dans laquelle l'erreur s'est produite. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle des opérations de mappage clé-valeur est GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. Dans la règle des opérations de mappage clé-valeur ayant échoué, vérifiez s'il existe un élément <Entry> comportant un élément <Value> manquant sous l'entrée <InitialEntries>.

    Voici un exemple de règle des opérations de mappage clé-valeur comportant un élément <Value> manquant :

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

Solution

Assurez-vous que tous les éléments <Entry> spécifiés sous l'élément <InitialEntries> de la règle des opérations de mappage clé-valeur possèdent un élément <Value>.

Pour corriger l'exemple de règle des opérations de mappage clé-valeur présenté ci-dessus, vous pouvez ajouter un élément <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>
    ...