Risoluzione degli errori di implementazione dei criteri dei callout delle estensioni

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

InvalidConnectorInstance

Messaggio di errore

Il deployment del proxy API tramite la UI Edge o l'API di gestione Edge non riesce e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio dell'errore

Messaggio di errore relativo all'istanza del connettore non valida

Causa

Questo errore si verifica se l'elemento <Connector> nel criterio ExtensionCallout non è presente o è impostato su un valore vuoto.

Diagnosi

  1. Identifica il nome del criterio ExtensionCallout nel messaggio di errore. Ad esempio, nel seguente errore, il nome della policy ExtensionCallout è Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Esamina il codice XML della policy ExtensionCallout non riuscita e verifica se l'elemento <Connector> è presente e non vuoto. Ad esempio, nell'elemento <Connector> della policy riportata di seguito è vuoto e non contiene il nome dell'estensione:

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

Poiché l'elemento <Connector> è vuoto, il deployment del proxy API non riesce.

Risoluzione

Assicurati che il valore dell'elemento <Connector> del criterio Callout dell'estensione sia sempre specificato e corrisponda al nome dell'estensione effettiva creata nell'organizzazione.

Per correggere la policy ExtensionCallout di esempio mostrata sopra, puoi impostare l'elemento <Connector> sul nome dell'estensione esistente nell'ambiente specifico in cui viene eseguito il deployment del proxy API.

Per determinare il nome dell'estensione, nell'interfaccia utente di Edge puoi andare a Amministrazione > Estensioni. Verranno visualizzati i nomi di tutte le estensioni della tua organizzazione. Il nome dell'estensione deve essere impostato nell'elemento <Connector>.

Visualizza il nome di tutte le estensioni nella UI di Edge.

Di seguito è riportato l'esempio con il nome dell'estensione impostato correttamente nell'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

Messaggio di errore

Il deployment del proxy API tramite la UI Edge o l'API di gestione Edge non riesce e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio dell'errore

Messaggio di errore L'istanza del connettore non esiste

Causa

Questo errore si verifica se l'elemento <Connector> nella policy ExtensionCallout è impostato su un nome che non esiste nell'ambiente in cui viene eseguito il deployment del proxy API.

Diagnosi

  1. Identifica il nome della policy ExtensionCallout, il nome dell'estensione non valido utilizzato nell'elemento <Connector> della policy ExtensionCallout e l'ambiente in cui si è verificato l'errore. Puoi trovare tutti questi elementi nel messaggio di errore.

    Ad esempio, nel seguente errore, il nome della policy ExtensionCallout è Extension Callout-1,invalid name dell'estensione è cloud_storage e il nome dell'ambiente è test:

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
  2. Esamina il file XML della policy ExtensionCallout non riuscita e verifica se il nome dell'estensione specificato per l'elemento <Connector> corrisponde a quello nel messaggio di errore.

    In questo esempio, il nome dell'estensione specificato nell'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. Verifica se il nome dell'estensione è stato creato nell'ambiente (determinato nel passaggio 1).

    Nell'interfaccia utente di Edge, vai a Amministrazione > Estensioni e controlla se l'estensione esiste e se il nome corrisponde a quello specificato nell'elemento <Connector> della policy ExtensionCallout.

    Nello screenshot seguente, nota che l'estensione cloud_storage_ext esiste, ma non corrisponde all'elemento <Connector> specificato nell'esempio di norma ExtensionCallout mostrato sopra:

    Visualizza il nome di tutte le estensioni nella UI di Edge.

    Poiché il nome dell'estensione specificato nell'elemento <Connector> non esiste, viene visualizzato l'errore di deployment:

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

Risoluzione

Assicurati che l'estensione specificata nell'elemento <Connector> della policy ExtensionCallout sia stata creata e che il nome sia specificato correttamente.

Per informazioni su come creare l'estensione, consulta Tutorial: utilizzo delle estensioni.

Per correggere l'esempio precedente, correggi il nome in modo che corrisponda all'estensione effettiva:

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

Messaggio di errore

Il deployment del proxy API tramite la UI Edge o l'API di gestione Edge non riesce e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio dell'errore

Messaggio di errore Azione non valida

Causa

Questo errore si verifica se l'elemento <Action> nel criterio ExtensionCallout non è presente o è impostato su un valore vuoto.

Diagnosi

  1. Identifica il nome della policy ExtensionCallout. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore, il nome della policy ExtensionCallout è Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
  2. Esamina il file XML della policy ExtensionCallout non riuscita e verifica se l'azione è specificata nell'elemento <Action>. Se l'elemento <Action> non è presente o è vuoto, questo è il motivo dell'errore.

    In questo esempio, l'elemento <Action> è vuoto:

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

Risoluzione

Assicurati che l'elemento <Action> sia sempre specificato e non vuoto nel criterio ExtensionCallout.

Consulta Tutorial: Utilizzo delle estensioni per informazioni su come creare un'estensione e su come utilizzarla nella policy con l'elemento <Action> corretto.

Per risolvere il problema sopra indicato, specifica l'azione corretta per l'estensione:

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

Messaggio di errore

Il deployment del proxy API tramite la UI Edge o l'API di gestione Edge non riesce e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio dell'errore

Messaggio di errore Consenti estensioni nel flusso client post

Causa

È vietato avere una policy ExtensionCallout in un flusso PostClient. Se una policy ExtensionCallout viene inserita in un flusso PostClient, il deployment del proxy API non va a buon fine e viene visualizzato questo errore.

Diagnosi

  1. Identifica il nome della policy ExtensionCallout. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore, il nome della policy ExtensionCallout è Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Esamina tutti i flussi PostClient in tutti gli endpoint del proxy API specifico in cui si è verificato l'errore. Consulta l'articolo Controllare l'esecuzione di un proxy con i flussi.

    Se noti che la policy ExtensionCallout (determinata nel passaggio 1) è inserita nel flusso PostClient, questa è la causa dell'errore.

    Ad esempio, il seguente flusso PostClient contiene la policy ExtensionCallout:

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

Risoluzione

Assicurati che la policy ExtensionCallout non sia inserita nel flusso PostClient.

Per risolvere il problema menzionato sopra, devi spostare il criterio ExtensionCallout in un altro flusso.

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