Solução de problemas de erro na implantação da política de chamadas de serviço

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

InvalidConnectorInstance

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
In policy_name: Connector must not be empty.

Exemplo de mensagem de erro

Error Saving Revision 1
In Extension Callout-1: Connector must not be empty.

Captura de tela com erro de exemplo

Mensagem de erro da instância do conector inválida

Causa

Esse erro ocorrerá se o elemento <Connector> da política ExtensionCallout estiver ausente ou definido como um valor vazio.

Diagnóstico

  1. Identifique o nome da política ExtensionCallout na mensagem de erro. Por exemplo, no erro a seguir, o nome da política ExtensionCallout é Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Analise o XML da política ExtensionCallout com falha e verifique se o elemento <Connector> está presente e não está vazio. Por exemplo, na política abaixo, o elemento <Connector> está vazio e não contém o nome da extensão:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
        <DisplayName>Extension Callout-1</DisplayName>
        <Connector></Connector>
        <Action>downloadFile</Action>
        <Input><![CDATA[
             {}
         ]]></Input>
        <Output>context-variable-name</Output>
    </ConnectorCallout>

Como o elemento <Connector> está vazio, a implantação do proxy da API falha.

Resolução

Verifique se o valor do elemento <Connector> da política da chamada de serviço da extensão é sempre especificado e corresponde ao nome da extensão real criada na organização.

Para corrigir a política de exemplo ExtensionCallout mostrada acima, você pode definir o elemento <Connector> como o nome da extensão que existe no ambiente específico em que o proxy da API está sendo implantado.

Para determinar o nome da extensão, na interface do usuário do Edge, acesse Administrador > extensões. Nessa página, serão exibidos os nomes de todas as extensões. O nome da extensão precisa ser definido no elemento <Connector>.

Conferir o nome de todas as extensões na interface do Edge.

Veja abaixo o exemplo com o nome da extensão definido corretamente no elemento <Connector>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

ConnectorInstanceDoesNotExists

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Deploying Revision revision_number to environment
In policy_name: Connector <extension_name> does not exist in environment environment.

Exemplo de mensagem de erro

Error Deploying Revision 1 to test
In Extension Callout-1: Connector cloud_storage does not exist in environment test.

Captura de tela com erro de exemplo

Mensagem de erro &quot;A instância do conector não existe&quot;

Causa

Esse erro ocorrerá se o elemento <Connector> da política ExtensionCallout estiver definido com um nome que não existe no ambiente em que o proxy da API está sendo implantado.

Diagnóstico

  1. Identifique o nome da política ExtensionCallout, o nome da extensão inválido usado no elemento <Connector> da política ExtensionCallout e o ambiente em que o erro ocorreu. Você pode encontrar todos esses itens na mensagem de erro.

    Por exemplo, no erro a seguir, o nome da política ExtensionCallout é Extension Callout-1,invalid , o nome da extensão é cloud_storage e o nome do ambiente é test:

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
  2. Analise o XML com falha da política ExtensionChamada e verifique se o nome da extensão especificado para o elemento <Connector> corresponde ao que está na mensagem de erro.

    Neste exemplo, o nome da extensão especificado no elemento <Connector> é cloud_storage:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage</Connector>
            <Action>downloadFile</Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>
  3. Verifique se o nome da extensão foi criado no ambiente (determinado na etapa 1).

    Na interface do Edge, acesse Administrador > extensões e verifica se a extensão existe e o nome corresponde ao especificado no elemento <Connector> na política Extension callout.

    Na captura de tela abaixo, observe que a extensão cloud_storage_ext existe, mas não corresponde ao elemento <Connector> especificado no exemplo de política Extension callout mostrado acima:

    Confira o nome de todas as extensões na interface do Edge.

    Como o nome da extensão especificado no elemento <Connector> não existe, você recebe o erro de implantação:

    In Extension Callout-1: Connector cloud_storage does not exist in environment test.

Resolução

Verifique se a extensão especificada no elemento <Connector> da política ExtensionCallout foi criada e se o nome está especificado corretamente.

Consulte o Tutorial: como usar extensões para informações sobre como criá-la.

Para corrigir o exemplo acima, corrija o nome para que ele corresponda à extensão real:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

InvalidAction

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
In policy_name: Action must not be empty.

Exemplo de mensagem de erro

Error Saving Revision 1
In Extension Callout-1: Action must not be empty.

Captura de tela com erro de exemplo

Mensagem de erro de ação inválida

Causa

Esse erro ocorrerá se o elemento <Action> da política ExtensionCallout estiver ausente ou definido como um valor vazio.

Diagnóstico

  1. Identifique o nome da política ExtensionCallout. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política ExtensionCallout é Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
  2. Analise o XML da política ExtensionCallout com falha e verifique se a ação é especificada no elemento <Action>. Se o elemento <Action> estiver ausente ou vazio, essa será a causa do erro.

    Neste exemplo, o elemento <Action> está vazio:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage_ext</Connector>
            <Action></Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>

Resolução

Certifique-se de que o elemento <Action> seja sempre especificado e não vazio na política ExtensionCallout.

Consulte o Tutorial: como usar extensões para informações sobre como criar uma extensão e como usá-la na política com o elemento <Action> correto.

Para corrigir o problema acima, especifique a ação correta da extensão:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

AllowExtensionsInPostClientFlow

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Deploying Revision revision_number to environment
In policy_name: Policy is not allowed in PostClientFlow.

Exemplo de mensagem de erro

Error Deploying Revision 1 to test
In Extension Callout-1: Policy is not allowed in PostClientFlow.

Captura de tela com erro de exemplo

Permitir mensagem de erro &quot;Extensões em fluxo de cliente da postagem&quot;

Causa

É proibido ter uma política ExtensionCallout em um fluxo PostClient. Se uma política ExtensionCallout for colocada em um fluxo PostClient, a implantação do proxy de API falhará com esse erro.

Diagnóstico

  1. Identifique o nome da política ExtensionCallout. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política ExtensionCallout é Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Analise todos os fluxos PostClient em todos os endpoints do proxy da API específica em que ocorreu a falha. Consulte o artigo Como controlar a maneira como um proxy é executado com fluxos.

    Se você notar que a política Extension callout (determinada na etapa 1) foi inserida no fluxo PostClient, essa é a causa do erro.

    Por exemplo, o fluxo PostClient a seguir tem uma política ExtensionCallout nele:

        ...
        <PostClientFlow>
                <Request/>
                <Response>
                    <Step>
                        <Name>Extension-Callout-1</Name>
                    </Step>
                </Response>
            </PostClientFlow>
        ...

Resolução

Verifique se a política ExtensionCallout não está colocada no fluxo PostClient.

Para corrigir o problema mencionado acima, mova a política ExtensionCallout para qualquer outro fluxo.

...
<PreFlow name="PreFlow">
    <Request/>
    <Response>
        <Step>
            <Name>Extension-Callout-1</Name>
        </Step>
    </Response>
</PreFlow>
...