Risoluzione degli errori di implementazione dei criteri dei callout delle estensioni

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

InvalidConnectorInstance

Messaggio di errore

Il deployment del proxy API tramite l'UI o l'API di gestione perimetrale non riesce e genera 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 errore di esempio

Messaggio di errore relativo all'istanza del connettore non valida

Causa

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

Diagnostica

  1. Identifica il nome delle norme relative ai callout nel messaggio di errore. Ad esempio, nel seguente errore, il nome della norma EstensioneCallout è Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Esamina il codice XML del criterio ExtensionCallout non riuscito e verifica che l'elemento <Connector> sia presente e non vuoto. Ad esempio, nel criterio seguente l'elemento <Connector> è 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 estensione sia sempre specificato e che corrisponda al nome dell'estensione effettiva creata nell'organizzazione.

Per correggere il criterio ExtensionCallout di esempio riportato sopra, puoi impostare l'elemento <Connector> sul nome dell'estensione esistente nell'ambiente specifico in cui viene implementato il proxy API.

Per determinare il nome dell'estensione, nell'interfaccia utente di Edge puoi andare su Amministrazione > Estensioni. Qui verranno mostrati i nomi di tutte le estensioni dell'organizzazione. Il nome dell'estensione deve essere impostato nell'elemento <Connector>.

Visualizza il nome di tutte le estensioni nell&#39;UI di Edge.

Di seguito è riportato l'esempio in cui Nome 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 l'UI o l'API di gestione perimetrale non riesce e genera 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 errore di esempio

Messaggio di errore &quot;Istanza non esiste&quot; del connettore

Causa

Questo errore si verifica se l'elemento <Connector> nel criterio ExtensionCallout è impostato su un nome che non esiste nell'ambiente in cui viene implementato il proxy API.

Diagnostica

  1. Identifica il nome della norma ExtensionCallout, il nome dell'estensione non valido utilizzato nell'elemento <Connector> delle norme ExtensionCallout e l'ambiente in cui si è verificato l'errore. Puoi trovare tutte queste voci nel messaggio di errore.

    Ad esempio, nel seguente errore, il nome del criterio 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 codice XML del criterio ExtensionCallout non riuscito e verifica che il nome dell'estensione specificato per l'elemento <Connector> corrisponda al contenuto del 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 ad Amministrazione > Estensioni e controlla se l'estensione esiste e il nome corrisponde a quello specificato nell'elemento <Connector> delle norme ExtensionCallout.

    Nello screenshot di seguito puoi vedere che l'estensione cloud_storage_ext esiste, ma non corrisponde all'elemento <Connector> specificato nell'esempio di norma ExtensionCallout mostrata sopra:

    Visualizza il nome di tutte le estensioni nell&#39;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> delle norme ExtensionCallout sia stata creata e che il nome sia specificato correttamente.

Per informazioni su come creare un'estensione, consulta Tutorial sull'utilizzo delle estensioni.

Per correggere l'esempio riportato sopra, 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 l'UI o l'API di gestione perimetrale non riesce e genera 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 errore di esempio

Messaggio di errore relativo all&#39;azione non valida

Causa

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

Diagnostica

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

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
    
  2. Esamina il codice XML del criterio ExtensionCallout non riuscito e verifica se l'azione è specificata nell'elemento <Action>. Se l'elemento <Action> non è presente o è vuoto, questa è la causa 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 nelle norme ExtensionCallout.

Per informazioni su come creare un'estensione e su come utilizzarla nel criterio con l'elemento <Action> corretto, consulta l'articolo Tutorial: utilizzo delle estensioni.

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 l'UI o l'API Edge Management non riesce e restituisce 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 errore di esempio

Messaggio di errore Consenti estensioni nel flusso client post

Causa

È vietato avere norme ExtensionsCallout in un flusso PostClient. Se un criterio ExtensionCallout viene inserito in un flusso PostClient, il deployment del proxy API non riesce e genera questo errore.

Diagnostica

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

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

    Se noti che le norme ExtensionCallout (determinate nel passaggio 1) vengono inserite nel flusso post-client, allora l'errore è questo.

    Ad esempio, il seguente PostClient Flow contiene il criterio ExtensionCallout:

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

Risoluzione

Assicurati che il criterio ExtensionCallout non sia inserito nel flusso post-client.

Per risolvere il problema sopra menzionato, devi spostare le norme relative ai callout estensione in qualsiasi altro flusso.

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