Résolution des problèmes liés aux erreurs de déploiement de la règle d'appel d'extension

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

InvalidConnectorInstance

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec le message d'erreur suivant:

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

Exemple de message d'erreur

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

Capture d'écran du message d'erreur

Message d'erreur d'instance de connecteur non valide

Cause

Cette erreur se produit si l'élément <Connector> de la règle ExtensionCallout est manquant ou défini sur une valeur vide.

Diagnostic

  1. Identifiez le nom de la règle ExtensionCallout dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle ExtensionCallout est Extension Callout-1 :

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Examinez le fichier XML de la règle ExtensionCallout et vérifiez si l'élément <Connector> est présent et non vide. Par exemple, dans la règle ci-dessous, l'élément <Connector> est vide et ne contient pas le nom de l'extension:

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

Puisque l'élément <Connector> est vide, le déploiement du proxy d'API échoue.

Résolution

Assurez-vous que la valeur de l'élément <Connector> de la règle d'appel d'extension est toujours spécifiée et correspond au nom de l'extension réelle créée dans l'organisation.

Pour corriger l'exemple de règle ExtensionCallout affiché ci-dessus, vous pouvez définir l'élément <Connector> sur le nom de l'extension qui existe dans l'environnement spécifique où le proxy d'API est déployé.

Pour déterminer le nom de l'extension, dans l'interface utilisateur Edge, vous pouvez naviguer dans Admin > Extensions. Les noms de toutes les extensions de votre organisation s'affichent ici. Le nom de l'extension doit être défini dans l'élément <Connector>.

Affichez le nom de toutes les extensions dans l&#39;interface utilisateur Edge.

Voici un exemple dans lequel le nom de l'extension est correctement défini dans l'élément <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

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec le message d'erreur suivant:

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

Exemple de message d'erreur

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

Capture d'écran du message d'erreur

Message d&#39;erreur indiquant que l&#39;instance de connecteur n&#39;existe pas

Cause

Cette erreur se produit si l'élément <Connector> de la règle ExtensionCallout est défini sur un nom qui n'existe pas dans l'environnement où le proxy d'API est déployé.

Diagnostic

  1. Identifiez le nom de la règle ExtensionCallout, le nom de l'extension non valide utilisé dans l'élément <Connector> de la règle ExtensionCallout, et l'environnement où l'erreur s'est produite. Vous trouverez tous ces éléments dans le message d'erreur.

    Par exemple, dans l'erreur suivante, le nom de la règle ExtensionCallout est Extension Callout-1,, le nom non vald e de l'extension est cloud_storage et le nom de l'environnement est test :

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
    
  2. Examinez le fichier XML de la règle ExtensionCallout qui a échoué et vérifiez si le nom d'extension spécifié pour l'élément <Connector> correspond au contenu du message d'erreur.

    Dans cet exemple, le nom de l'extension spécifié dans l'élément <Connector> est 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. Vérifiez si le nom de l'extension a été créé dans l'environnement (déterminé à l'étape 1).

    Dans l'interface utilisateur Edge, accédez à Admin > Extensions (Administration > Extensions), puis vérifiez si l'extension existe et si le nom correspond à celui spécifié dans l'élément <Connector> de la règle ExtensionCallout.

    Notez dans la capture d'écran ci-dessous que l'extension cloud_storage_ext existe, mais qu'elle ne correspond pas à l'élément <Connector> spécifié dans l'exemple de règle ExtensionCallout ci-dessus:

    Affichez le nom de toutes les extensions dans l&#39;interface utilisateur Edge.

    Étant donné que le nom d'extension spécifié dans l'élément <Connector> n'existe pas, l'erreur de déploiement suivante s'affiche:

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

Résolution

Assurez-vous que l'extension spécifiée dans l'élément <Connector> de la règle ExtensionCallout a été créée et que le nom est correctement spécifié.

Reportez-vous à la section Tutoriel : Utiliser des extensions pour savoir comment créer l'extension.

Pour corriger l'exemple ci-dessus, corrigez le nom afin qu'il corresponde à l'extension réelle :

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

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec le message d'erreur suivant:

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

Exemple de message d'erreur

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

Capture d'écran du message d'erreur

Message d&#39;erreur d&#39;action non valide

Cause

Cette erreur se produit si l'élément <Action> de la règle ExtensionCallout est manquant ou défini sur une valeur vide.

Diagnostic

  1. Identifiez le nom de la règle ExtensionCallout. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle ExtensionCallout est Extension Callout-1:.

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
    
  2. Examinez le fichier XML de la règle ExtensionCallout ayant échoué, puis vérifiez si l'action est spécifiée dans l'élément <Action>. Si l'élément <Action> est manquant ou s'il est vide, c'est la cause de l'erreur.

    Dans cet exemple, l'élément <Action> est vide :

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

Résolution

Assurez-vous que l'élément <Action> est toujours spécifié et non vide dans la règle ExtensionCallout.

Reportez-vous à la section Tutoriel : Utiliser des extensions pour savoir comment créer une extension et comment l'utiliser dans la règle avec l'élément <Action> approprié.

Pour résoudre le problème ci-dessus, spécifiez l'action appropriée pour l'extension :

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

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec le message d'erreur suivant:

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

Exemple de message d'erreur

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

Capture d'écran du message d'erreur

Autoriser les extensions dans le message d&#39;erreur PostClientFlow

Cause

Il est interdit de définir une règle ExtensionCallout dans un flux PostClient. Si une règle ExtensionCallout est placée dans un flux PostClient, le déploiement du proxy d'API échoue avec cette erreur.

Diagnostic

  1. Identifiez le nom de la règle ExtensionCallout. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle ExtensionCallout est Extension Callout-1:.

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Examinez tous les flux PostClient dans tous les points de terminaison du proxy d'API spécifique où l'échec a eu lieu. Veuillez consulter l'article Contrôler l'exécution d'un proxy avec des flux.

    Si vous remarquez que la règle ExtensionCallout (déterminée à l'étape 1) est placée dans le flux PostClient, c'est la cause de l'erreur.

    Par exemple, le flux PostClient suivant comporte une règle ExtensionCallout :

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

Résolution

Assurez-vous que la règle ExtensionCallout ne figure pas dans le flux PostClient.

Pour résoudre le problème mentionné ci-dessus, vous devez déplacer la règle ExtensionCallout vers un autre flux.

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