Solução de problemas de erros na implantação da política de operações de mapa de chave-valor

Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.

InvalidIndex

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Exemplo de mensagem de erro

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

Captura de tela com erro de exemplo

Erro ao salvar a revisão 2.

Causa

Se o atributo index especificado no elemento <Get> de uma política de operações do mapa de chave-valor for zero ou um número negativo, a implantação do proxy da API falhará. O índice começa em 1, portanto, um índice de zero ou inteiro negativo é considerado inválido.

Por exemplo, se o index especificado for 0 no elemento <Get> de uma política de operações de mapa de chave-valor, a implantação do proxy de API falhará.

Diagnóstico

  1. Identifique a política de operações de mapa de chave-valor em que o erro ocorreu e o índice inválido. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é GetKVM e o índice inválido é 0:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. Verifique se o valor do índice especificado no elemento <Get> da política de operações de mapa de chave-valor falhou corresponde ao valor identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica o valor do índice como 0, que corresponde ao que está na mensagem de erro:

    <?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 o índice especificado for zero ou um número inteiro negativo, essa é a causa do erro.

    No exemplo mostrado acima, o valor do índice é 0, que é inválido. Portanto, a implantação do proxy de API falha com o erro:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Resolução

Verifique se o atributo de índice especificado no elemento <Get> da política de operações de mapa de chave-valor é válido (e não zero ou um número inteiro negativo).

Para corrigir o exemplo de política mostrado acima, você pode modificar o índice para 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

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Captura de tela com erro de exemplo

Erro ao salvar a revisão 3.

Causa

Esse erro ocorrerá se o elemento <Key> estiver completamente ausente ou o elemento <Parameter> estiver ausente no elemento <Key> abaixo de <Entry> do elemento <InitialEntries> da política de operações do mapa de chave-valor.

Diagnóstico

  1. Identifique a política de operações do mapa de chave-valor em que o erro ocorreu. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política de operações do mapa de chave-valor é GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. Na política com falha, verifique se há algum elemento <Entry> que tenha um elemento <Key> ou <Parameter> ausente abaixo de<InitialEntries>.

    Veja uma amostra de política de operações de mapa de chave-valor que não tem o elemento <Parameter> no 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>
    

    Nesse caso, o primeiro elemento está causando o problema.

Resolução

Verifique se todos os elementos <Entry> abaixo do elemento <InitialEntries> na política de operações do mapa de chave-valor têm um elemento <Key> seguido por um elemento <Parameter>.

Para corrigir a política de exemplo mostrada acima, adicionar um elemento <Parameter> resolve o 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

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Captura de tela com erro de exemplo

Erro ao salvar a revisão 3.

Causa

Esse erro ocorrerá se o elemento <Value> abaixo do elemento <Entry> do elemento <InitialEntries> da política de operações do mapa de chave-valor estiver ausente.

Diagnóstico

  1. Identifique a política de operações do mapa de chave-valor em que o erro ocorreu. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política de operações do mapa de chave-valor é GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. Na política de operações de mapa de chave-valor com falha, verifique se há algum elemento <Entry> que não tenha um elemento <Value> abaixo do <InitialEntries>.

    Veja uma amostra de política de operações de mapa de chave-valor que não tem o 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>
        ...
    

Resolução

Verifique se todos os elementos <Entry> abaixo do elemento <InitialEntries> na política de operações de mapa de chave-valor têm um elemento <Value>.

Para corrigir a política de exemplo mostrada acima, adicionar um elemento <Value> resolve o 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>
    ...