Risoluzione degli errori di implementazione dei criteri dei callout delle estensioni

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

InvalidConnectorInstance

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:

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

Messaggio di errore di esempio

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

Screenshot di errore di esempio

Messaggio di errore istanza connettore non valido

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 delle norme sulle estensioni callout nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio ExtensionCallout è Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Esamina il codice XML del criterio ExtensionCallout (estensione) non superato e verifica che l'elemento <Connector> sia presente e non vuoto. Ad esempio, nel criterio sotto <Connector> l'elemento è 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 va a buon fine.

Risoluzione

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

Per correggere l'esempio di criterio ExtensionCallout mostrato 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, nella UI di Edge puoi andare su Amministratore > Estensioni. In questa pagina verranno mostrati 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 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 o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:

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

Messaggio di errore di esempio

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 L&#39;istanza connettore non esiste

Causa

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

Diagnosi

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

    Ad esempio, nell'errore riportato di seguito, il nome del criterio ExtensionCallout è Extension Callout-1,invalid il nome 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 dei criteri ExtensionCallout non riuscito e verifica che il nome dell'estensione specificato per l'elemento <Connector> corrisponda a quello indicato 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 che il nome dell'estensione sia stato creato nell'ambiente (determinato nel passaggio 1).

    Nella UI di Edge, vai su Amministratore > Estensioni e controlla se l'estensione esiste e se il nome corrisponde a quello specificato nell'elemento <Connector> del criterio ExtensionCallout.

    Nota nello screenshot riportato di seguito che l'estensione cloud_storage_ext esiste, ma non corrisponde all'elemento <Connector> specificato nella norma ExtensionCallout di esempio sopra riportata:

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

    Poiché il nome dell'estensione specificato nell'elemento <Connector> non esiste, ricevi 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> del criterio ExtensionCallout sia stata creata e che il nome sia specificato correttamente.

Per informazioni su come creare l'estensione, consulta l'articolo Tutorial: 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 la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:

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

Messaggio di errore di esempio

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

Screenshot di errore di esempio

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 norma ExtensionCallout. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio ExtensionCallout è 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, la causa dell'errore è questa.

    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 che non sia vuoto nel criterio ExtensionCallout.

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

Per risolvere il problema riportato sopra, 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'interfaccia utente di Edge o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:

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

Messaggio di errore di esempio

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

Screenshot di errore di esempio

Messaggio di errore &quot;Consenti estensioni nel flusso post-client&quot;

Causa

In un flusso post-cliente non è consentito avere norme sulle estensioniCallout. Se un criterio ExtensionCallout viene inserito in un flusso post-cliente, il deployment del proxy API non va a buon fine e restituisce questo errore.

Diagnosi

  1. Identifica il nome della norma ExtensionCallout. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio 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 il criterio ExtensionCallout (determinato nel passaggio 1) è inserito nel flusso post-client, questo è la causa dell'errore.

    Ad esempio, il seguente flusso PostCliente contiene il criterio ExtensionCallout Policy:

        ...
        <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 il criterio ExtensionCallout in qualsiasi altro Flow.

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